Karşılaştırma

Katılım
3 Kasım 2006
Mesajlar
11
Excel Vers. ve Dili
Excel 2003
Merhabalar,

ilk defa bir forumdan yardım isteyeceğim, hatam olursa mazur görün lütfen. benim problemim makro hazırlama ile ilgili. makro yazma adına bilgim yok denecek kadar az ve işyerim için bir şeyler hazırlamam gerekiyor. öğlenden beri forumlardan serseri mayın gibi geziyorum, benim problemime en yakın olarak excel.we. tr ' deki okudum. listeler arası yada datalar arası karşılaştırma konusunda gerçekten yardıma ihtiyacım var.

A firması B firması
no Z numarası Y numarası Tarih no Z numarası Y numarası Tarih
1 12345679 987654321 15.02.2001 05:25:12 1 234567890 345678901 14.06.2001 05:25:12
2 456789912 456789912 16.02.2001 05:25:12 2 345678901 456789912 15.06.2001 05:25:12
3 567900923 567900923 17.02.2001 05:25:12 3 456789912 567900923 16.06.2001 05:25:12
4 679011934 679011934 18.02.2001 05:25:12 4 567900923 679011934 17.06.2001 05:25:12
5 790122945 790122945 19.02.2001 05:25:12 5 679011934 790122945 18.06.2001 05:25:12
6 901233956 901233956 20.02.2001 05:25:12 6 790122945 901233956 19.06.2001 05:25:12
7 123446789 101234967 21.02.2001 05:25:12 7 901233956 101234967 20.06.2001 05:25:12
8 934565978 112345978 22.02.2001 05:25:12 8 123446789 112345978 21.06.2001 05:25:12
9 123456989 123456989 23.02.2001 05:25:12 9 934565978 123456989 22.06.2001 05:25:12
10 901233956 134567800 24.02.2001 05:25:12 10 123456989 134567800 23.06.2001 05:25:12


2 şirketin ( A ve B firması ) kayıtları 4 sütun halinde yujarıdaki gibi yer alıyor. amacım şu : a firması kayıtlarında 1.sırada bulunan kayıdın ( Z numarası Y numarasını X tarihte ve X saatte aramış ) B firmasının kayıtlarında olup olmadığını bütün B firması kayıtları içinde olup olmadığınız süzmek ( ama aynı şartlar çerçevesinde yani Z numarasının Y numarasını X tarihte ve X saatte aramış olmalı ) ve aynı kayıdı bulunca renkli yazdırmak yada başka bir sayfaya o satırı oldugu gibi atmak bulamazsa da bulunamadı yada farklı bir renkle yazdırmak vb. bir sonuç ile işlemi bitirmek. Problemimi tam olarak anlatabildimmi bilemiyorum ama genel hatları ile bundan ibaret. iyi çalışmalar.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Her iki firma kayıtları aynı sayfadamı? Bir örnek dosyada eklerseniz sorunuza cevap vermek kolaylaşacaktır.
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
sn. resurrection;

sanırım probleminiz benim bir kaç gün önce çözmeye çalştığım soruna benziyor... aşağıdaki linki inceler misiniz? ayrıca forumun arama butonunu da kullanarak benzeri bir çok örnek bulabilirsiniz. ve eğer yine çözüm bulamadı iseniz sorunuza bir örnek dosya eklerseniz çözüme daha kolay gidileceğini düşünüyorum..


http://www.excel.web.tr/showthread.php?t=21718
 
Katılım
3 Kasım 2006
Mesajlar
11
Excel Vers. ve Dili
Excel 2003
karşılaştırma

sn: cellchuq

sizin yazdıklarınız okudum işte 2 saat uğraştım beceremedim :) benimki elimde var olan veriler üzerinden olması yeterli.

sayın leventm ;
aslında hangi sayfada oldugunun bir önemi yok. yani aynı sayfadada olabilir farklı sayfada da olur. eke koyuyuorum dosyayı. teşekkür ederim ilginiz için
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ekli dosyayı inceleyin. Mükerrer olan kayıtın bulunduğu satırın rengi sarı olmaktadır.

Dosyada kullanılan kod aşağıdakidir.

Sub SMS()
[a:d].Interior.ColorIndex = xlNone
son = [f65536].End(3).Row
For a = 4 To [a65536].End(3).Row
say = Evaluate("=SUMPRODUCT((B" & a & "=G4:G" & son & ")*(C" & a & "=H4:H" & son & ")*(D" & a & "=I4:I" & son & "))")
If say > 0 Then Range("a" & a & ":d" & a).Interior.ColorIndex = 6
Next
MsgBox "işlem tamamlandı."
End Sub
 
Katılım
3 Kasım 2006
Mesajlar
11
Excel Vers. ve Dili
Excel 2003
Sn Leventm;

sizin gönderdiğiniz makroyu denedim. şöyle bir birşey gözlemledim. benim kullanacağım veri adedi 65536 ama içlerinden çok az bir kısmını boyuyor. daha fazla olması gerekmezmi ? aşağıdaki komut satırlarını ekledim. eşleşmeyen çağrıları maviye boyuyor değilmi, doğrumu anladım? peki aynı mantıkla hareket ederek mesela 1.şirketin verilerini1. sayfadan 2. şirketin verilerini 2.sayfadan alıp karşılaştırıp, eşleşen verileri 3.sayfaya yazdırma şeklinde olabilirmi?teşekkür ederim ilginiz için.

If say = 0 Then Range("a" & a & ":d" & a).Interior.ColorIndex = 5
If say < 0 Then Range("a" & a & ":d" & a).Interior.ColorIndex = 4
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
şöyle bir birşey gözlemledim. benim kullanacağım veri adedi 65536 ama içlerinden çok az bir kısmını boyuyor. daha fazla olması gerekmezmi ?
Yani kod bütün satırları taramıyormu demek istiyorsunuz? Eğer tarayıp az sayıda satırı renklendiriyorsa bu durumda mükerrer kayıt sayınız az demektir.

aşağıdaki komut satırlarını ekledim. eşleşmeyen çağrıları maviye boyuyor değilmi, doğrumu anladım?
Bu doğru

peki aynı mantıkla hareket ederek mesela 1.şirketin verilerini1. sayfadan 2. şirketin verilerini 2.sayfadan alıp karşılaştırıp, eşleşen verileri 3.sayfaya yazdırma şeklinde olabilirmi?teşekkür ederim ilginiz için.
Bu elbette yapılabilir. Mükerre olan kayıtlar 3.sayfaya yazılırken 1.sayfadan silinecekmi?
 
Katılım
3 Kasım 2006
Mesajlar
11
Excel Vers. ve Dili
Excel 2003
karşılaştırmA

sn Leventm;

1. şirketin verileri 1.sayfada olsun, 2. şirketin verileri 2. sayfada olsun, makro ise 1. ve 2. sayfadaki verileri ilk mesajımda belirttiğim şartlar altında eşleştirerek, eşleşenleri 3.sayfada, eşleşmeyenleri 4. sayfada yazdırsın ve veriler silinmesin. böyle bir şey mümkün olabilirmi? ayrıca veri boyutunun max olduğu durum üzerinden hareket edebiliriz. ayrıca size çok teşekkür ediyorum inanın ne kadar yardımcı oldunuz bilemezsiniz..
 
Katılım
3 Kasım 2006
Mesajlar
11
Excel Vers. ve Dili
Excel 2003
kerşılaştırma

sn Leventm:

tekrar iyi günler diliyorum. en son yazdığım mesaja bir yorum bekliyorum cuma gününden beri. o mesajda kullandığım ifadelerden rahatsız olduysanız özür dilerim. sanırım yanlış analşılmaya sebep oldu. kelime sonlarındaki -sun ifadeleri mantıksal durumu anlatmak için kullanılmıştı. Eğer son mesajıma cevap veremeyeceksiniz( yogunluk,vs..) bilmek isterim. tekrar çok teşekkür ederim. iyi günler
 
Katılım
3 Kasım 2006
Mesajlar
11
Excel Vers. ve Dili
Excel 2003
karşılaştırmA

merhaba;


dosyayı indirdim ama nasıl kullanacağım konusunuda biraz yardıma ihtiyacım var sanırım.
 

İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,104
Excel Vers. ve Dili
Excel, 365 - İngilizce
Dosyay&#305; eklentilerin Add-Inns' bulundu&#287;u dizininizin i&#231;ine koyduktan sonra Tools/Add Ins/ Browse'tan ekleyin.

Ya da dosyan&#305;z&#305; a&#231;&#305;n ve daha sonra bu eklenti dosyas&#305;n&#305; &#231;al&#305;&#351;t&#305;r&#305;n.

Tools'a (Ara&#231;lar) bakarsan&#305;z orada onu g&#246;receksiniz. Bunu &#231;al&#305;&#351;t&#305;rd&#305;&#287;&#305;n&#305;zda o sizi y&#246;nlendirecek.
 
Son düzenleme:

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
tekrar iyi günler diliyorum. en son yazdığım mesaja bir yorum bekliyorum cuma gününden beri. o mesajda kullandığım ifadelerden rahatsız olduysanız özür dilerim. sanırım yanlış analşılmaya sebep oldu. kelime sonlarındaki -sun ifadeleri mantıksal durumu anlatmak için kullanılmıştı. Eğer son mesajıma cevap veremeyeceksiniz( yogunluk,vs..) bilmek isterim. tekrar çok teşekkür ederim. iyi günler
Rica ederim. Yanlış anlaşılacak bir durum söz konusu değil. Sorun sadece benim unutkalnlığımdan kaynaklandı. İlk fırsatta sorunuzla ilgileneceğim. Gecikme içim lütfen kusuruma bakmayın.
 
Katılım
3 Kasım 2006
Mesajlar
11
Excel Vers. ve Dili
Excel 2003
kerşılaştırma

sn: yurttas;

söylediğiniz gibi yaptım program çalıştı ama verdiği sonuçlar benim ulaşmak istediklerim değil. ilginiz ve yardımınız için çok teşekkür ederim.

sn : levent;

sizede anlayşınız için tşk ederim. siz uygun bir zaman içinde bekliyorum. iyi günler, iyi çalışmalar.
 
Katılım
15 Eylül 2006
Mesajlar
166
Excel Vers. ve Dili
2003 sp2 TR
__________________
Anlad&#305;&#287;&#305;m kadar&#305;yla sizin yukar&#305;daki sonu&#231;lar&#305; elde etmeniz i&#231;in m&#252;kerrer kay&#305;tla ilgili ve ikisayfay&#305; kar&#351;&#305;la&#351;t&#305;rmak i&#231;in ise ko&#351;ullu d&#252;&#351;eyara mant&#305;&#287;&#305;n&#305; kullanarak &#231;&#246;ze bilirsiniz. Tam komutlara hakim olamad&#305;&#287;&#305;mdan komut yazam&#305;yorum. Site i&#231;erisinde arama yaparsan&#305;z bir &#231;ok &#246;rnek bulabilir kendinize g&#246;re yorumluya bilirsiniz. Ger&#231;i bu konuda s&#246;z hocalar&#305;m&#305;za d&#252;&#351;er.
 

Korhan Ayhan

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

Ekte örnek dosyanız üzerinde gerekli düzenlemeyi yaptım incelermisiniz.
 
Katılım
15 Eylül 2006
Mesajlar
166
Excel Vers. ve Dili
2003 sp2 TR
__________________
Sn. Cost Control,

Vermi&#351; oldu&#287;unuz &#246;rnekte Firma 2 sayfas&#305;ndaki E&#351;le&#351;meyenler gelmemekte.

Onun d&#305;&#351;&#305;nda s&#252;per olmu&#351;.
 

Korhan Ayhan

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

Eğer istenen her iki sayfanında kontrolü ise kodu aşağıdaki şekilde uygularsanız sanırım istediğiniz sonuca ulaşırsınız.

Kod:
Sub LİSTELERİ_KARŞILAŞTIR()
    Set S1 = Sheets("FİRMA 1")
    Set S2 = Sheets("FİRMA 2")
    Set S3 = Sheets("EŞLEŞENLER")
    Set S4 = Sheets("EŞLEŞMEYENLER")
    S3.[A2:E65536].ClearContents
    S4.[A2:E65536].ClearContents
    S = 1
    S1.Select
    For X1 = 4 To [A65536].End(3).Row
    Cells(X1, 6) = Cells(X1, 2) & Cells(X1, 3) & Cells(X1, 4)
    Next
    S2.Select
    For X2 = 4 To [A65536].End(3).Row
    Cells(X2, 6) = Cells(X2, 2) & Cells(X2, 3) & Cells(X2, 4)
    Next
    S3.Select
    For X3 = 4 To S1.[A65536].End(3).Row
    Say = WorksheetFunction.CountIf(S2.[F4:F65536], S1.Cells(X3, 6))
    If Say > 0 Then
    S = S + 1
    S3.Cells(S, 1) = S1.Cells(X3, 1)
    S3.Cells(S, 2) = S1.Cells(X3, 2)
    S3.Cells(S, 3) = S1.Cells(X3, 3)
    S3.Cells(S, 4) = Format(S1.Cells(X3, 4), "dd.mm.yyyy hh:mm:ss")
    S3.Cells(S, 5) = S1.Name
    End If
    Next
    S = 1
    S4.Select
    For X4 = 4 To S1.[A65536].End(3).Row
    Say = WorksheetFunction.CountIf(S2.[F4:F65536], S1.Cells(X4, 6))
    If Say = 0 Then
    S = S + 1
    S4.Cells(S, 1) = S1.Cells(X4, 1)
    S4.Cells(S, 2) = S1.Cells(X4, 2)
    S4.Cells(S, 3) = S1.Cells(X4, 3)
    S4.Cells(S, 4) = Format(S1.Cells(X4, 4), "dd.mm.yyyy hh:mm:ss")
    S4.Cells(S, 5) = S1.Name
    End If
    Next
    For X5 = 4 To S2.[A65536].End(3).Row
    Say = WorksheetFunction.CountIf(S1.[F4:F65536], S2.Cells(X5, 6))
    If Say = 0 Then
    S = S + 1
    S4.Cells(S, 1) = S2.Cells(X5, 1)
    S4.Cells(S, 2) = S2.Cells(X5, 2)
    S4.Cells(S, 3) = S2.Cells(X5, 3)
    S4.Cells(S, 4) = Format(S2.Cells(X5, 4), "dd.mm.yyyy hh:mm:nn")
    S4.Cells(S, 5) = S2.Name
    End If
    Next
    S1.[F4:F65536] = ""
    S2.[F4:F65536] = ""
    MsgBox "İŞLEMİNİZ TAMAMLANMIŞTIR.", vbInformation
End Sub
 
Son düzenleme:
Katılım
15 Eylül 2006
Mesajlar
166
Excel Vers. ve Dili
2003 sp2 TR
__________________
Sn. Cost Control,

Sn. resurrection istedi&#287;i b&#246;yle bir&#351;ey ise ger&#231;ekten harika.
 
Katılım
3 Kasım 2006
Mesajlar
11
Excel Vers. ve Dili
Excel 2003
kerşılaştırma

sn : Cost control;

son yaptığınız düzenleme ile varmak istediğim sonuçlara ulaştım. çok güzel olmuş emeğinize ve ellerinize sağlık. 1-2 nokta var sormak istediğim;

1- S4.Cells(S, 4) = Format(S1.Cells(X4, 4), "dd.mm.yyyy hh:mm:nn")
kod satırında yer alan format komutu saat kısmını farklı oluşuyor sanırım. saniye kısmında 10 -15 saniyelik farklılıklar oluştu. ayrıca format komutunu kaldırıp çalıştırdığımda ise bu farklılıklar kayboldu. bu konudaki fikirleriniz nedir?

2- aynı tarihteki kayıtlar için aynı saniye değil de saniye aralığı olmasını istersek nasıl bir durum ortaya çıkabilir ya da gerçekleşme şansı varmı?


çok teşekkür ederim.
 
Üst