yatay formattaki bir tablodan bazı verileri Liste Haline dönüştürme

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,640
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
merhaba sayın hocalarım
ekli tabloda sorumu açıklamalarıyla belirttim.
ilk olarak formülle çözüm beklemekteyim alternatif olarak makrolu çözümlerde olabilir.
 

Ekli dosyalar

Mahir64

Destek Ekibi
Destek Ekibi
Katılım
19 Nisan 2006
Mesajlar
6,677
Excel Vers. ve Dili
Excel 2013-Türkçe
Excel 2016-Türkçe
Merhaba,

Deneyiniz,
Kod:
=+TOPLA.ÇARPIM(($C$8:$C$13=$N$6)*($D$8:$D$13=L8)*($F$8:$F$13))
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Tecrübeli bir kullanıcı olarak mevcut dosyanızın istediğiniz sonucu elde etmek için hiç de uygun olmadığını sizin de anlamış olduğunuzu düşünüyorum. Yol yakınken dosya yapınızı işleri daha kolay yapmanızı sağlayacak şekilde, veritabanı mantığıyla düz tablo haline dönüştürmenizi öneriyorum.
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,640
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
Mahir Hocam
F sütunundaki toplamları değil
C D ve F sütunlarının bulunmasını istiyorum

şirketimizdeki mazotları yazan arkadaş bu formatta bir tablo belirlediğinden ben devamında bir listeye yazıp verileri çektiriyorum ancak geçmiş aylardaki bu formattaki tablodan listeye nasıl geçebilirim bunu sordum hocam
 

Mahir64

Destek Ekibi
Destek Ekibi
Katılım
19 Nisan 2006
Mesajlar
6,677
Excel Vers. ve Dili
Excel 2013-Türkçe
Excel 2016-Türkçe
Pardon ben tam tersini düşündüm.
Sn. Yusuf beyin önerisine bende katılıyorum.
Dosya yapınızda değişiklik yapılması daha uygun olacaktır. Bu haliyle dosyaya hükmekmek sanıldığı kadarda kolay olmaz.
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,640
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
ekli dosyamdaki sağ taraftaki tabloyu sol tarafta liste haline getirmekle ilgili bir soru
ama bazen size gelen yada başkasının yaptığı formata müdahale edemiyosunuz amiriniz yok buna alıştık bundan devam edelim diyor kalıyosunuz.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Bence güzel bir veri giriş formuyla birlikte hızlı rapor özellikleri eklediğiniz bir örnek dosya gösterirseniz amiriniz de bize hak verecektir.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ek olarak zaten bir kerelik bir dönüşüm olacaksa formülle debelenmeye gerek yok. Patlatın makroyu gitsin... 229354
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,640
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
bir defalık çözüm olcak zaten Korhan Hocam
makrolu çözüm bekliyorum zaten ama formüllü çözüm olabiliyorsa bu gibi tabloalrı yataya çevirebilmek için dönüştürme yapabilirim diye düşünüyorum
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,640
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
size kısa bir halini gönderdiğim dosyanın kendisinde OCAK-TEMMUZ a kadar sekmelerde hep aynı bu tablodan var ve yaklaşık 200 satırdan oluşan ve (31 gün desek, her bir gün için 6 sütun ayrılmış) = 186 sütunluk bir tablodan işlemler yapılmış ve hatalar olmuş
bende bunları liste haline çevrilebilirse kolay bir çözümleme yapıp hataları bulabilirim diye düşündüm. bu yüzden foruma ilettim sorumu
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Formülle çözüm bulunsa bile büyük ihtimalle bu kadar çok sütun için dosyada yavaşlama durumu gerçekleşecektir.

Bu sebeple amacınız eğer bu tablodan kurtulup temiz ve kontrol edilebilir bir liste elde etmekse makro en temiz çözüm yolu olacaktır.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
@modoste , VBA kullanılan ekli dosya isteğinizi karşılayacaktır sanırım....

.
 

Ekli dosyalar

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,640
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
şimdi farkettim. Haluk hocam yanıt gelmedi diye bırakmıştım sorumu.
Makroyu en geniş aralık için uyguladım sonuçlarda hata yok
Teşekkür ederim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif;

Hız olarak avantaj sağlayacaktır.

C++:
Option Explicit

Sub Create_List_From_Horizontal_Table()
    Dim My_Data As Variant, Last_Row As Long, Last_Column As Integer, X As Long, Y As Integer
    Dim First_Date As Date, End_Date As Date, Record_Count As Long, Proccess_Time As Double
    
    Proccess_Time = Timer
    
    Range("C8:G" & Rows.Count).ClearContents
    
    First_Date = Range("C5").Value
    End_Date = Range("G5").Value
    
    Last_Row = Cells(Rows.Count, "L").End(3).Row
    If Last_Row < 9 Then Last_Row = 9
    
    Last_Column = Cells(7, Columns.Count).End(1).Column
    
    My_Data = Range("J6:" & Cells(Last_Row, Last_Column).Address(0, 0))
    
    ReDim My_List(1 To Rows.Count, 1 To 5)
    
    For X = 3 To UBound(My_Data, 1)
        If My_Data(X, 3) <> "" Then
            For Y = 18 To Last_Column Step 6
                If My_Data(1, Y - 13) >= First_Date And My_Data(1, Y - 13) <= End_Date Then
                    If My_Data(X, Y - 9) <> "" Then
                        Record_Count = Record_Count + 1
                        My_List(Record_Count, 1) = CDate(My_Data(1, Y - 13))
                        My_List(Record_Count, 2) = My_Data(X, 3)
                        My_List(Record_Count, 4) = My_Data(X, Y - 9)
                    End If
                End If
            Next
        End If
    Next
    
    If Record_Count > 0 Then
        Range("C8").Resize(Record_Count, 5) = My_List
        MsgBox "Your transaction is complete." & vbCr & vbCr & _
               "Processing time ; " & Format(Timer - Proccess_Time, "0.00") & " Second"
    Else
        MsgBox "No suitable records found.", vbExclamation
    End If
End Sub
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,640
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
Teşekkür ederim Korhan Hocam
 
Üst