Fatura Numarası ve Miktar Eşleştirme

nakata417

Altın Üye
Katılım
8 Haziran 2017
Mesajlar
15
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2019 TR 64Bit
Altın Üyelik Bitiş Tarihi
11-11-2025
Merhaba kıymetli arkadaşlar.

Uzun zamandır excel ile ilgilenmediğim için bir sorunum var. Dosya ekleyemedim, gold üyeliğin onaylanmasını bekliyorum.

Dosya Linki:



Excel dosyamda "A1SATIS" ve "Kontrol" isimli 2 sayfam var. Burada yinelenen bir çok fatura var ve karşısında miktarları var.

Görsel linki verdim.


"Kontrol" sayfasında bu faturaları tek satırda miktar-tutar-kdv tutar toplamlarını görmek istiyorum.

Mesela: A1SATIS sayfamda


Fatura No: ABC2024000000000 ürün: elma Miktar: 5 Tutar: 2 Kdv:2
Fatura No: ABC2024000000000 ürün: armut Miktar:1 Tutar: 3 Kdv: 3
Fatura No: ABC2024000000000 ürün: muz Miktar: 2 Tutar: 2 Kdv: 1


"Kontrol" sayfasında, tek bir faturada toplamların sağlamasını yapmak istiyorum.

Yani, Fatura No: ABC2024000000000 Miktar: 8 Tutar: 7 Kdv:6

Formülle çalıştıramadım. Desteklerini rica ederim. Kıymetli vaktinizi ayırdığınız için teşekkürler.
 
Son düzenleme:

nakata417

Altın Üye
Katılım
8 Haziran 2017
Mesajlar
15
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2019 TR 64Bit
Altın Üyelik Bitiş Tarihi
11-11-2025

Teşekkürler,

Sanki burada birşeyler var ama dosya silinmiş, macro kullanmayi bilmiyorum. Biraz daha araştırma yapacağım.
 
Katılım
11 Temmuz 2024
Mesajlar
191
Excel Vers. ve Dili
Excel 2021 Türkçe
Makro kullanarak yapmak isterseniz;

Kod:
Sub FaturaToplamlariniHesapla()
    Dim wsVeri As Worksheet
    Dim wsKontrol As Worksheet
    Dim sonSatir As Long
    Dim faturaNo As String
    Dim dict As Object
    Dim key As Variant
    Dim i As Long
    Set wsVeri = ThisWorkbook.Sheets("A1SATIS")
    Set wsKontrol = ThisWorkbook.Sheets("Kontrol")
    Set dict = CreateObject("Scripting.Dictionary")
    Application.ScreenUpdating = False
    sonSatir = wsVeri.Cells(wsVeri.Rows.Count, "A").End(xlUp).Row
    For i = 2 To sonSatir
        faturaNo = wsVeri.Cells(i, "A").Value
        If Not dict.Exists(faturaNo) Then
            dict.Add faturaNo, Array( _
                wsVeri.Cells(i, "C").Value, _
                wsVeri.Cells(i, "D").Value, _
                wsVeri.Cells(i, "E").Value) 
        Else
            Dim mevcutDegerler As Variant
            mevcutDegerler = dict(faturaNo)
            mevcutDegerler(0) = mevcutDegerler(0) + wsVeri.Cells(i, "C").Value
            mevcutDegerler(1) = mevcutDegerler(1) + wsVeri.Cells(i, "D").Value
            mevcutDegerler(2) = mevcutDegerler(2) + wsVeri.Cells(i, "E").Value
            dict(faturaNo) = mevcutDegerler
        End If
    Next i
    wsKontrol.Cells.Clear
    wsKontrol.Cells(1, "A").Value = "Fatura No"
    wsKontrol.Cells(1, "B").Value = "Toplam Miktar"
    wsKontrol.Cells(1, "C").Value = "Toplam Tutar"
    wsKontrol.Cells(1, "D").Value = "Toplam KDV"
    i = 2
    For Each key In dict.Keys
        wsKontrol.Cells(i, "A").Value = key
        wsKontrol.Cells(i, "B").Value = dict(key)(0)
        wsKontrol.Cells(i, "C").Value = dict(key)(1)
        wsKontrol.Cells(i, "D").Value = dict(key)(2)
        i = i + 1
    Next key
    wsKontrol.Columns("A:D").AutoFit
    Application.ScreenUpdating = True
    MsgBox "Fatura toplamları hesaplandı ve Kontrol sayfasına yazıldı.", vbInformation
End Sub
Makroyu nasıl ekleyeceğim derseniz; VBA Düzenleyicisini Açın: Excel'de iken Alt + F11 tuşlarına basarak VBA düzenleyicisini açın.
Yeni Bir Modül Ekleyin: Üst menüden Ekle > Modül seçeneğini seçin.
Kodu Yapıştırın: Yukarıdaki kodu açtığınız modüle yapıştırın.
Makroyu Çalıştırın: VBA düzenleyicisinde veya Excel'de Alt + F8 tuşlarına basarak Makrolar penceresini açın. FaturaToplamlariniHesapla makrosunu seçip Çalıştır butonuna tıklayın.
Sonuçları Kontrol Edin: "Kontrol" sayfasına giderek sonuçları görebilirsiniz.

Bu işlemleri yapmadan önce lütfen yedek almayı unutmayın.
 

nakata417

Altın Üye
Katılım
8 Haziran 2017
Mesajlar
15
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2019 TR 64Bit
Altın Üyelik Bitiş Tarihi
11-11-2025
Teşekkürler, ama olmadı. Başka işlemler oluyor. 5 Satıra karışık birşeyler yapıyor kod
 

nakata417

Altın Üye
Katılım
8 Haziran 2017
Mesajlar
15
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2019 TR 64Bit
Altın Üyelik Bitiş Tarihi
11-11-2025
Düşeyara ile yapmaya çalıştım yine yapamadım. Çok ciddi bir sorun. Bir ayı yapmam neredeyse 2 günüme mal oluyor. Lütfen kurtarın.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,295
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kontrol sayfasında ilgili hücrelere aşağıdaki formülleri uygulayıp deneyiniz...

H4;
C++:
=ÇOKETOPLA(A1SATIS[MIKTAR];A1SATIS[FISNO];$D4;A1SATIS[CARIUNVANI];$E4;A1SATIS[MALZEMEACIKLAMASI];$G4)
I4;
C++:
=ÇOKETOPLA(A1SATIS[TUTAR];A1SATIS[FISNO];$D4;A1SATIS[CARIUNVANI];$E4;A1SATIS[MALZEMEACIKLAMASI];$G4)
J4;
C++:
=ÇOKETOPLA(A1SATIS[KDVTUTAR];A1SATIS[FISNO];$D4;A1SATIS[CARIUNVANI];$E4;A1SATIS[MALZEMEACIKLAMASI];$G4)
 

nakata417

Altın Üye
Katılım
8 Haziran 2017
Mesajlar
15
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2019 TR 64Bit
Altın Üyelik Bitiş Tarihi
11-11-2025
Teşekkrüler Korhan bey,

denedim ama AED2023000004295 nolu fatura için kontrol sayfasında baktım, ASATIS1 sayfasından D901'deki veriyi çekmiş.

Ama olması gereken, kontrol sayfasında AED2023000004295 nolu fatura için miktar:384 tutar: 388804,38 Kdv tutar: 3104,35
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,295
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Veriyi toplarken FATURA NO-FİRMA ADI-ÜRÜN ADI kriterlerine bakarak işlem yapıyor. Bunlarla oynayarak dilediğiniz değişikliği yapabilirsiniz. Yani kriterlerini azaltıp-çoğaltabilirsiniz...
 

nakata417

Altın Üye
Katılım
8 Haziran 2017
Mesajlar
15
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2019 TR 64Bit
Altın Üyelik Bitiş Tarihi
11-11-2025
Çok teşekkür ederim Korhan bey. Sayenizde oldu. Her şey gönlünüzce olsun. Sağlıklı günler diliyorum.
 

nakata417

Altın Üye
Katılım
8 Haziran 2017
Mesajlar
15
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2019 TR 64Bit
Altın Üyelik Bitiş Tarihi
11-11-2025
Son 1 ekleme yapmak istiyorum Korhan bey.

Üçüncü bir sayfa ekledim. "Vergi"

Bu sayfadan " Kontrol" sayfasında yer alan F4 sütunun olduğu yere vergi kimlik numaralarını/Tc numaralarını getirmek.

"Vergi" sayfasında "B" sütununda vergi dairesi, "C" sütununda TC yazıyor, şahıs şirketi olduğu için.

Burada formülün döngüsü, eğer cari unvanı bulduğunda B sütunundaysa vergi numarasını getirmek, eğer boş ise, C sütununda şahıs şirketi olduğu için TC numarasını getirmesi.


Bunu denedim ama olmadı.

=DÜŞEYARA(E4;Vergi!A1:C1;2;0)


Dosya Linki:

 

Korhan Ayhan

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

C++:
=EĞERHATA(DÜŞEYARA(KIRP(E4);KIRP(Vergi!$A$1:$C$1000);2;0)&DÜŞEYARA(KIRP(E4);KIRP(Vergi!$A$1:$C$1000);3;0);"-")
 

nakata417

Altın Üye
Katılım
8 Haziran 2017
Mesajlar
15
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2019 TR 64Bit
Altın Üyelik Bitiş Tarihi
11-11-2025
Teşekkürler Korhan bey, çalıştıramadım. Kopyaladım yapıştırdım ama sonuç hep "-" bu şekilde satırlarda yazıyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,295
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Formülü hücreye yazdıktan sonra hücreyi CTRL+SHIFT+ENTER tuşlarına basarak terk edip deneyiniz.
 

nakata417

Altın Üye
Katılım
8 Haziran 2017
Mesajlar
15
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2019 TR 64Bit
Altın Üyelik Bitiş Tarihi
11-11-2025
Oldu çok ilginç.
Emeğinize sağlık bir kez daha.
 
Üst