AccessTr.neT
Farklı Sayıda Hücre İçeriğini Tek Bir Hücrede Birleştirme - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Excel (https://accesstr.net/forum-microsoft-excel.html)
+--- Forum: Excel Cevaplanmış Soruları (https://accesstr.net/forum-excel-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Farklı Sayıda Hücre İçeriğini Tek Bir Hücrede Birleştirme (/konu-farkli-sayida-hucre-icerigini-tek-bir-hucrede-birlestirme.html)



Farklı Sayıda Hücre İçeriğini Tek Bir Hücrede Birleştirme - pınar35 - 02/04/2022

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-hucre-grubunu-sonuc-olarak-dondurme.html daydı. Oradan devam ettim ancak yeni soru sor denmiş. Oradaki örnekten yola çıkıp eklediğim Excel için yardım edebilirmisiniz?


RE: Farklı Sayıda Hücre İçeriğini Tek Bir Hücrede Birleştirme - berduş - 03/04/2022

A sütunundaki IVL sayı formatı ne?
en fazla kaç karakter var?
sadece sayı ve nokta mı olacak?


RE: Farklı Sayıda Hücre İçeriğini Tek Bir Hücrede Birleştirme - berduş - 03/04/2022

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