• DİKKAT

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

çok koşullu düşeyara

  • Konbuyu başlatan Konbuyu başlatan mtnzkn
  • Başlangıç tarihi Başlangıç tarihi
Katılım
14 Şubat 2011
Mesajlar
11
Excel Vers. ve Dili
2003
A B C D
barkod faturano adsoyad tutar
0001 449123 kemal sunal 12
0002 449124 hakan şükür 49
0003 449125 kemal sunal 59


örnek tabloda kemal sunalın 12 liralık satışının fatura numarasını veren formülü arıyorum.
 
A B C D
barkod faturano adsoyad tutar
0001 449123 kemal sunal 12
0002 449124 hakan şükür 49
0003 449125 kemal sunal 59


örnek tabloda kemal sunalın 12 liralık satışının fatura numarasını veren formülü arıyorum.

merhaba
Kod:
=İNDİS($B$2:$B$6;TOPLA.ÇARPIM(KAÇINCI("kemal"&"sunal"&12;
$C$2:$C$6&$D$2:$D$6&$E$2:$E$6;0));1)
bu formülü kullanabilirsiniz
 
bu formülü 90,000 satırlık veriye uygulicam hocam kontrolü hücre bazlı yapamazmıyız
 
Selamlar,

Örnek dosya üzerinde yapmak istediğiniz işlemi açıklar mısınız?
 
Ilk sayfada tahsilat listem var
ikinci sayfada gönderi listem

carilerin kapatmaları için tahsilat bedellerinin aranacağı bir formüle ihtiyacım var
90,000 satır var

dosya ektedir
 

Ekli dosyalar

Merhaba,

Örnek;

2 veride Kemal Sunal olarak geçiyor, H2 hücresini hesaplarken "KARGO TAHSİLAT LİSTESİ" sayfasında Kemal Sunal'ın 120 mi yoksa 200 mu değerinden hangisini alacağını nasıl anlıyacağız.?

.
 
kemal sunal 2 sipariş vermiş
biri 12 milyon biri 120 lira

2 satışın da tahsilatı, gönderi listesinin yanına yazılacak
tahsil edilmemiş paketlerimi belirlicem
 
Sayın mtnzkn,

Benim de sorduğum oydu. İkisini ayrı ayrı yazarız sorun değil, fakat bu şekilde yazılış sıraşı sizin verinizle örtüşmeyebilir.

Hangi sıraya 12, hangi sıraya 120 gelmesi veri düzenine göre karışabilir. Bu yüzden arama yaparken bir ölçüt daha katılması önerimdir.

Tablonuza uygun ölçüt, fatura numarası yada barkot numarası olabilir fakat bu veriler de iki sayfanın sadece birinde var.

.
 
aynen benim de sorunum o zaten

eğer a1=kemal sunal ; b1=12 ise c1 e Sayfa2!A1 deki fatura numarasını yaz gibi bir komut yokmudur
2 koşullu düşeyara fonksiyonu gibi bişey olucak sanırım
 
Selamlar,

Eklediğiniz dosyada H2 hücresine aşağıdaki notu eklemişsiniz.

** KARGO TAHSİLAT LİSTESİNDEN İSİMLER TUTARI KARŞILAŞTIRIP TAHSİLAT BEDELİNİ BU HÜCREYE YAZACAK

Tahsilat bedeli bilgisi hangi sütunda bulunuyor ben göremedim.

Ayrıca 90.000 satır için formül kullanmanız sıkıntı yaratacaktır. Makro ile daha hızlı sonuca gidebilirsiniz.
 
aynen benim de sorunum o zaten

eğer a1=kemal sunal ; b1=12 ise c1 e Sayfa2!A1 deki fatura numarasını yaz gibi bir komut yokmudur
2 koşullu düşeyara fonksiyonu gibi bişey olucak sanırım

Bende birkaç birşey sorayım.

Açıklamalarınız bu şekilde kısıtlı olduğu müddetçe soru çözümüne başlamamız uzayacaktır.

Verdiğiniz örnekle örtüşen açıklamalar yaparsanız, konu bizim için çok daha net anlaşılır.

"GÖNDERİ LİSTESİ" sayfasında A2 hücresindeki veri, "KARGO TAHSİLAT LİSTESİ" sayfasında C sütununda aranacak, bu tamam. Bundan sonrası için bu şekilde açık ve net bir şekilde konuyu özetlermisiniz.

Dosyada ikinci aranacak koşulu bulamadım. Hangi hücre ile hangi sütun aranacak ki ikili düşeyara olsun.Tablonuzu gözden geçirmenizi rica ederim...

.
 
isimleri eşleştiricek bu tamam
örnek dosyada dikkat edersen kemal sunalın 2 tane satışı var
yapmak istediğim formül şöyle

GönderiListesi!ADSOYAD=Tahsilat!ADSOYAD; GönderiListesi!İLÇE=TAHSİLAT!İLÇE; GönderiListesi!TUTAR=Tahsilat!Tutar
OLDUĞU DURUMLARDA TAHSİLAT LİSTESİNDEKİ TUTARI GÖNDERİ LİSTESİNDE EŞLEŞEN SATIRIN SAĞINA YAZ

(YANİ KEMAL SUNALIN 12 LİK SATIŞI 449123 NUMARALI FATURAYI, 120 LİRALIK SATIŞI 449127 NUMARALI FATURAYI KAPATACAK)
 
Selamlar,

Aşağıdaki kodu denermisiniz.

90.000 satırlık bir veriye uygulayacağınız için kod önerdim. Veri sayınız arttıkça biraz yavaşlama yaşayabilirsiniz.


Kod:
Option Explicit
 
Sub TAHSİLAT_BEDELİ_ARA()
    Dim S1 As Worksheet, S2 As Worksheet
    Dim BUL As Range, ADRES As String, X As Long
 
    Application.ScreenUpdating = False
 
    Set S1 = Sheets("KARGO TAHSİLAT LİSTESİ")
    Set S2 = Sheets("GÖNDERİ LİSTESİ")
 
    S2.Range("H2:H" & Rows.Count).ClearContents
 
    For X = 2 To S2.Cells(Rows.Count, "A").End(3).Row
        Set BUL = S1.Range("C:C").Find(S2.Cells(X, "A"))
        If Not BUL Is Nothing Then
        ADRES = BUL.Address
        Do
            If S2.Cells(X, "D") = BUL.Offset(0, 2) And S2.Cells(X, "G") = BUL.Offset(0, 4) Then
                S2.Cells(X, "H") = BUL.Offset(0, 4)
                Exit Do
            End If
        Set BUL = S1.Range("C:C").FindNext(BUL)
        Loop While Not BUL Is Nothing And BUL.Address <> ADRES
        End If
    Next
 
    Set BUL = Nothing
    Set S1 = Nothing
    Set S2 = Nothing
 
    Application.ScreenUpdating = True
 
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Kod istediğimi yaptı ama sadece ilk kaydı hesapladı diğerlerini hesaplamadı
 
Selamlar,

Üstteki mesajımdaki kodda küçük bir değişklik yaptım. İncelermisiniz.
 
Selamlar,

Başka eşleşen veri yoksa listeleme yapmaması gayet doğaldır.
 
Geri
Üst