Excel için VBA kullanarak kullanıcı tanımlı bir işlev oluşturmaya çalışıyorum. Bu, o satırda x işareti olan bir mağazalar listesini birleştirir.UDF değerleri birleştirmek için
Store1 Store2 Store3 Concatenate
x x Store1,Store3
x x tore1,Store2
x Store1
Bu vba kodunu yazmayı başardım, ancak bunun en iyi yaklaşım olduğundan emin değilim. 1000 ve daha fazla hat üzerinde deneme yaparken oldukça yavaştı. Belki optimize etmek mümkün mü?
firstStore sen yönlendireceği yeri ilk mağaza başlar (adları değil, ama x işaretleri lastStore1 son sütunu. listofstores1 mağaza isimleri nerede sırasıdır.
Function listofstores(firstStore As Range, lastStore1 As Range, listofstores1 As Range)
Application.Volatile
Dim offsetvalue As Integer
offsetvalue = -(lastStore1.Row - listofstores1.Row)
lastStore = lastStore1.Column
Set initial = firstStore
For i = 1 To lastStore
If initial = "X" Or initial = "x" Then Store = initial.Offset(offsetvalue, 0)
c = 1
Set initial = initial.Offset(0, c)
listofstores = listofstores & " " & Store
Store = ""
Next i
End Function
Office 2016 varsa o zaman yeni tanıtılan TEXTJOIN fonksiyonunun faydalanmak mümkün olabilir herhangi bir yerde yapabilirsiniz: https://support.office.com/en- Bize/makaleye/TEXTJOIN-function-357b449a-ec91-49d0-80c3-0e8fc845691c? ui = en-US & rs = tr-US & ad = US – Ralph