Farklı Sayıda Hücre İçeriğini Tek Bir Hücrede Birleştirme

02/04/2022, 16:11

pınar35

Herkese iyi çalışmalar. Ekte örnek bir Excel var. A hücrelerinde tanımlı numaralar değiştikçe B-O arasındaki bilgilerin A daki numara değişimine kadar olan satır sayısınca P hücresinde formüldeki gibi birleştirmem gerekiyor. Belirli bir düzende satır yok. Buna benzer yüzlerce dosyayı aynı şekilde elde etmem gerekiyor. Herbirinde onbinlerce kayıt var. Kopyala yapıştır ile formülleri kopyalayıp taşan satırları eklemeye çalıştım. Ama bu şekilde istenen zamana yetiştirmem mümkün değil. Yüzlerce site inceledim. En benzer soru https://accesstr.net/konu-vlookup-ile-hu...durme.html daydı. Oradan devam ettim ancak yeni soru sor denmiş. Oradaki örnekten yola çıkıp eklediğim Excel için yardım edebilirmisiniz?
03/04/2022, 01:59

berduş

A sütunundaki IVL sayı formatı ne?
en fazla kaç karakter var?
sadece sayı ve nokta mı olacak?
03/04/2022, 15:19

berduş

aşağıdaki kod işinize yarayabilir
yapılanlar:
1 - çalışmanız makro çalıştırabilen formata dönüştürüldü(xlsm olarak kaydedildi)
2 - Modül eklenip aşağıdaki yordam tanımlandı
Sub VeriBirlestir()
Set sht = ThisWorkbook.Sheets("IVL")
Dim TmpDz As Variant

Aranan = "Analizin Adı"
xAdrs = sht.UsedRange.Address & ":" & sht.UsedRange.Address
SonStr = Val(Split(xAdrs, "$")(4)) + 1
TmpDz = sht.Range("A1:B" & SonStr).Value
Dim VeriDz As Variant
ReDim VeriDz(1 To SonStr, 0)
IVLStr = ""
For x = 1 To SonStr
    If TmpDz(x, 2) = Aranan Then
        IVLStr = IVLStr & x & ","
    End If
Next x
IVLStr = IVLStr & SonStr
tmpVer = Split(IVLStr, ",")

For y = 0 To UBound(tmpVer) - 1
VeriGc = ""
xSon = tmpVer(y + 1) - 1
If Len(TmpDz(xSon, 1) & "") = 0 Then xSon = xSon - 1
    For x = tmpVer(y) + 3 To xSon - 2
        VeriGc = VeriGc & "  *  " & TmpDz(x, 1) & " : " & TmpDz(x, 2)
    Next x
    VeriGc = Mid(VeriGc, Len("  *  ")) & " ANL: " & TmpDz(xSon, 1)
    VeriDz(tmpVer(y), 0) = VeriGc
Next y

sht.Range("P2").Resize(SonStr, 1) = VeriDz
End Sub