• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

DİKEY BİR PİVOT TABLODA YER ALAN VERİNİN YATAYA ÇEVRİLMESİ

Katılım
30 Kasım 2012
Mesajlar
24
Excel Vers. ve Dili
Excel 2016- Türkçe
Selamlar üstadlar,

ekte göreceğiniz üzere günlük kullandığım veriden elde ettiğim pivot tablom tek bir sütun. bu Sütundaki veriyi yataya çevirmek istiyorum ama bir türlü, ne yaptıysam beceremedim.

sayfa 2 deki 1 numaralı çözüm işimi çok kolaylaştırır. desteğiniz için şimdiden teşekkür ederim.
 

Ekli dosyalar

Aşağıdaki kodları dosyanızda çalıştırabilrisiniz.
Sonuçları kontrol etmedim. Hata varsa söyleyin lütfen.
CoffeeScript:
Sub KodlaOzetAlma()
   Dim Arr1, Dict1 As Object, Arrival(), Liste()
   Arr1 = Worksheets("Sayfa1").Range("A1").CurrentRegion.Value
   Set Dict1 = CreateObject("Scripting.Dictionary")
   Worksheets("Sayfa2").Cells.Clear
   Worksheets("Sayfa2").Range("A1") = "Arrival"
   For i = 2 To UBound(Arr1)
      If Not Dict1.Exists(Arr1(i, 12)) Then
         Dict1.Add Arr1(i, 12), 1
         Say = Say + 1
         ReDim Preserve Arrival(1 To Say)
         Arrival(Say) = Arr1(i, 12)
      End If
   Next i
   Worksheets("Sayfa2").Range("A2").Resize(Say, 1) = Application.Transpose(Arrival)
   Worksheets("Sayfa2").Range("A1").Resize(Say, 1).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes
   Arr2 = Worksheets("Sayfa2").Range("A2").Resize(Say, 1).Value
  
   For i = 1 To UBound(Arr2)
      Dict1.RemoveAll
      For k = 2 To UBound(Arr1)
         If Arr1(k, 12) = CDate(Arr2(i, 1)) Then
            If Not Dict1.Exists(Arr1(k, 3)) Then Dict1.Add Arr1(k, 3), 1
         End If
      Next k
      If Dict1.Count > 0 Then
         ReDim Liste(1 To 1, 1 To Dict1.Count)
         For k = 0 To Dict1.Count - 1
            Liste(1, k + 1) = Dict1.Keys()(k)
         Next k
         Worksheets("Sayfa2").Range("B" & i + 1).Resize(1, Dict1.Count) = Liste
         If MaxKolon < Dict1.Count Then MaxKolon = Dict1.Count
         Erase Liste
      End If
   Next i
   For i = 2 To MaxKolon + 1
      Worksheets("Sayfa2").Cells(1, i) = "PNR " & i - 1
   Next i
   Worksheets("Sayfa2").Columns.AutoFit
End Sub
 
Selam,
Farklı bir yol ile yatay hali ile ekte dosyanızı paylaşıyorum;
Şu şekilde ilerleyebilirsiniz; Sayfa1 de datanız var datanızın son sekmesine ekte de göreceğiniz üzere başlığa adet yazarak 1,2,3,4,5 diye numaralandırdım pivot kısmında satırlara arrival, sütunlara adet, değerlere ise pnr yi getirerek yatay olarak pivotu oluşturabilirsiniz. Fakat bu şekilde yaptığımızda boş satırlar olacaktır bunu da dikkate almakta fayda var.

İyi çalışmalar.
 

Ekli dosyalar

@cifciugur kime yazdığınızı da etiketler iseniz yardımcı olalım.
Neyi yerleştiremediniz?
 
@cifciugur kime yazdığınızı da etiketler iseniz yardımcı olalım.
Neyi yerleştiremediniz?
ömer faruk bey'in attığı kodu yapamadım.

Sizin gönderdiğiniz dosyada ise boşlukları almam lazım , bu işlem benim sürekli tekrarladığım bir işlem daha pratik bir yolu var mıdır hocam?
 
ömer faruk bey'in attığı kodu yapamadım.

Sizin gönderdiğiniz dosyada ise boşlukları almam lazım , bu işlem benim sürekli tekrarladığım bir işlem daha pratik bir yolu var mıdır hocam?
Yapamadığınız kısım neresidir?
Örnek dosyanızda boş bir module içine kodu ekleyip makroyu çalıştırdığınızda istediğiniz işemi yapabilmektedir.
 
Yapamadığınız kısım neresidir?
Örnek dosyanızda boş bir module içine kodu ekleyip makroyu çalıştırdığınızda istediğiniz işemi yapabilmektedir.

Yani şöyle söz konusu makroyu bir düğmeye bağlamak gerekiyor değil mi , bende olmadı. o bağlamda yapamadım dedim
 
Kodun butona ekledim. Sayfa1 de butona basınca sayfa2 de listeniz oluşuyor.
 

Ekli dosyalar

Kodun butona ekledim. Sayfa1 de butona basınca sayfa2 de listeniz oluşuyor.
hocam o kadar güzel oldu ki , ellerinize emeklerinize sağlık. ayağınıza taş değmesin.

ancak ufacık bir maruzatım var olursa olur, olmazsa da sıkıntı değil. yeni veri kullandığımda makro çalıştıktan sonra sayfa 2 ye aldığı listede tarih sıralaması kayabiliyor.Örneğin; 20.08.2022 den sonra alt satırda 21.08.2022 yerine 19.08.2022 yazabiliyor gibi.
 
Tarih formatınız hatalı olabilir.
Değilse yeni verilerinizi görmem lazım.
 
Geri
Üst