Koşullu Düşeyarama yardımı

Katılım
11 Mart 2005
Mesajlar
201
Excel Vers. ve Dili
2007 TR
Herkese Merhabalar

Ekli dosyada da görülebileceği üzere, iki sayfadan oluşan bir belgem var. Bu belgede 1 numaralı sayfada müşterilerin isimleri ve telefon numaraları var. 2 numaralı sayfada müşterilerin arama bilgileri mevcut. Yapmak istediğim şey, 2 numaralı sayfaya müşterileri aradıktan sonra yazdığımız bilgilerden sadece o ismi en son hangi tarihte aradığımızın 1. sayfadaki listede ilgili ismin karşısına yazdırmak. Şimdiden teşekkürlerimle
 

Korhan Ayhan

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

Örnek dosyanızda M sütununu tarih olarak biçimlendirdikten sonra, M3 hücresine aşağıdaki formülü "CTRL+SHIFT+ENTER" tuş kombinasyonu ile uygulayın.

Kod:
=DOLAYLI("AllCalls!A"&MAK(EĞER(AllCalls!$B$2:$B$9=B3;SATIR(AllCalls!$B$2:$B$9))))
 
Katılım
11 Mart 2005
Mesajlar
201
Excel Vers. ve Dili
2007 TR
Teşekkür ederim sn. Cost Control. Bu uygulama çok işime yaradı. Saygılarımla,
 
Son düzenleme:
Katılım
11 Mart 2005
Mesajlar
201
Excel Vers. ve Dili
2007 TR
Galiba bu sorunumun çözümü makrolarda olacak çünkü, 1300 satırdan oluşan Source sayfası ve 7000 satırdan oluşan AllCalls sayfasında formülü denediğimde çok güzel çalıştı lakin, herhangi bir işlem yapmaya çalıştığımda, HESAPLANAN HÜCRELER %5 ile başlayarak excel 10 dk. kadar listeyi güncellemeye çalışıyor. Bu kodu makro haline getirebilir miyiz acaba? Teşekkürlerimle,
 

Korhan Ayhan

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

Bu durumda kod kullanmak daha mantıklı olacaktır. Aşağıdaki kodu kullanabilirsiniz.

Kod:
Sub SON_ARAMA_TARİHLERİNİ_LİSTELE()
    Set S1 = Sheets("Source")
    S1.[M3:M65536] = ""
    For X = 3 To S1.[B65536].End(3).Row
    Adres = S1.Cells(X, 2).Address
    Son_Arama_Tarihi = Evaluate("=INDIRECT(""AllCalls!A"" & MAX(IF(AllCalls!$B$2:$B$65536=" & Adres & ",ROW(AllCalls!$B$2:$B$65536))))")
    Cells(X, "M") = CDate(Son_Arama_Tarihi)
    Next
    Set S1 = Nothing
    MsgBox "MÜŞTERİLERİ SON ARAMA TARİHLERİ LİSTELENMİŞTİR.", vbInformation
End Sub
 
Katılım
11 Mart 2005
Mesajlar
201
Excel Vers. ve Dili
2007 TR
"Type mismatch" hatası veriyor. Bir yerde yanlış mı yapıyorum acaba?
 

Korhan Ayhan

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

Ekte örnek dosyanızda gerekli düzenlemeyi yaptım ve kodu çalıştırdım. Eğer sizde yine çalışmazsa hata veren satırı belirtirseniz düzeltmeye çalışırım.
 
Katılım
20 Ocak 2005
Mesajlar
4
herkese selamlar
buna benzer bende birşey soracağım iş.xls sayfasında A sütunuda hücre değeri T olanların c sütunundaki karşığı olan sayıyı yani a1 de T varsa c1 deki sayıyı deneme.xls sayfasında B14 hücresine vede numaraların arasına - değeri koyarak örnek 3325-5666-65447-23564 şeklinde yapmak için nasıl bir fonksiyon kullanmak lazımdır.şimdiden tşk ler
 
Son düzenleme:
Katılım
7 Ocak 2007
Mesajlar
263
Excel Vers. ve Dili
Excel 2003 (US),
Excel 2010 (US)
Herkese Merhabalar

Ekli dosyada da görülebileceği üzere, iki sayfadan oluşan bir belgem var. Bu belgede 1 numaralı sayfada müşterilerin isimleri ve telefon numaraları var. 2 numaralı sayfada müşterilerin arama bilgileri mevcut. Yapmak istediğim şey, 2 numaralı sayfaya müşterileri aradıktan sonra yazdığımız bilgilerden sadece o ismi en son hangi tarihte aradığımızın 1. sayfadaki listede ilgili ismin karşısına yazdırmak. Şimdiden teşekkürlerimle
Control+shift+enter...

Source, M3:

=MAX(IF(AllCalls!$B$2:$B$9=B3,AllCalls!$A$2:$A$9))

=MAK(EĞER(AllCalls!$B$2:$B$9=B3;AllCalls!$B$2:$B$9))
 
Katılım
11 Mart 2005
Mesajlar
201
Excel Vers. ve Dili
2007 TR
İlginize teşekkür ederim. Fakat formülle bu işi yapamıyorum. Çünkü çok fazla veri olduğu için formülerin hesaplanması 10 dk. yı buluyor. Makroyla bu işi çözmem lazım ama Sn. Cost Control'ün verdiği makroda hatayla karşılaşıyorum. Acaba nerede yanlış yapıyorum. Teşekkürlerimle,
 

Korhan Ayhan

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

Ekte örnek dosyanızda gerekli düzenlemeyi yaptım ve kodu çalıştırdım. Eğer sizde yine çalışmazsa hata veren satırı belirtirseniz düzeltmeye çalışırım.
Selamlar,

Sanırım mesajım gözünüzden kaçtı. Kodu çalıştırdığınızda hangi satırda hata mesajı alıyorsunuz belirtirmisiniz.
 
Katılım
11 Mart 2005
Mesajlar
201
Excel Vers. ve Dili
2007 TR
Merhabalar evet mesajınız gözümden kaçmış, afedersiniz. Şöyle bir durum oluşuyor. Source sayfasına yeni isimler ilave edilmiş durumda ve bu isimler AllCalls sayfasında henüz yer almıyor. Bundan dolayı formül AllCalls sayfasında Source da okuduğu değeri bulamadığı için Type Mismatch hatası veriyor. O isimlerin karşılığı boş kalabilir. Örneği ekte bilgilerinize sunuyorum. Teşekkürlerimle.
 

Korhan Ayhan

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

Dosyanızdaki kodu aşağıdaki ile değiştirip denermisiniz.

Kod:
Sub SON_ARAMA_TARİHLERİNİ_LİSTELE()
    Set S1 = Sheets("Source")
    S1.[M3:M65536] = ""
    For X = 3 To S1.[B65536].End(3).Row
    Adres = S1.Cells(X, 2).Address
    Son_Arama_Tarihi = Evaluate("=INDIRECT(""AllCalls!A"" & MAX(IF(AllCalls!$B$2:$B$65536=" & Adres & ",ROW(AllCalls!$B$2:$B$65536))))")
    If IsError(Son_Arama_Tarihi) Then
    Cells(X, "M") = "YENİ MÜŞTERİ"
    Else
    Cells(X, "M") = CDate(Son_Arama_Tarihi)
    End If
    Next
    Set S1 = Nothing
    MsgBox "MÜŞTERİLERİ SON ARAMA TARİHLERİ LİSTELENMİŞTİR.", vbInformation
End Sub
 
Katılım
11 Mart 2005
Mesajlar
201
Excel Vers. ve Dili
2007 TR
Çok fazla birşey söylemeye gerek yok. Süpersiniz!
Teşekkürler
 
Katılım
7 Ocak 2007
Mesajlar
263
Excel Vers. ve Dili
Excel 2003 (US),
Excel 2010 (US)
Herkese Merhabalar

Ekli dosyada da görülebileceği üzere, iki sayfadan oluşan bir belgem var. Bu belgede 1 numaralı sayfada müşterilerin isimleri ve telefon numaraları var. 2 numaralı sayfada müşterilerin arama bilgileri mevcut. Yapmak istediğim şey, 2 numaralı sayfaya müşterileri aradıktan sonra yazdığımız bilgilerden sadece o ismi en son hangi tarihte aradığımızın 1. sayfadaki listede ilgili ismin karşısına yazdırmak. Şimdiden teşekkürlerimle
ARANDI'nın 1 olması arama koşullarından biri mi?

Ve...

=MAK(EĞER(AllCalls!$B$2:$B$9=B3;AllCalls!$B$2:$B$9))

çok zaman alan bir formül mü?
 
Üst