Excel - İki Dosyayı Karşılaştırma
-
Hacılar elimde iki adet excel dosyası bulunmakta. Birinde (A dosyası) 1 sütun, ötekinde ( B dosyası ) 2 sütun bilgi bulunmaktadır. A dosyasındaki sütun ile B dosyasındaki bir sütundaki bilgiler uyuşmaktadır. Benim amacım B dosyasında ikinci sütundaki bilgileri A dosyasında yeni bir sütun açıp, ilk sütunda onu karşılayan verinin yanına taşımak. Örneğin;
A dosyasındaki bilgi
/trunk/SCCB/ProductLibrary/Code/src/conf/var.php
/trunk/SCCB/ProductLibrary/Code/src/core/data_access/Criteria.php
/trunk/SCCB/ProductLibrary/Code/src/core/data_access/Limit.php
B dosyasındaki bilgi
src/conf/var.php Developed
src/core/data_access/Criteria.php Developed
src/core/data_access/Limit.php Path
yani B dosyasındaki bilgiler A dosyasında /trunk/SCCB/ProductLibrary/Code/ satırından sonra gelen bilgiler, bazı bilgilerin karşılığı B dosyasında yok onlar da boş kalmalı. Burada benim oluşturmak istediğim yeni dosyada
/trunk/SCCB/ProductLibrary/Code/src/conf/var.php Developed
/trunk/SCCB/ProductLibrary/Code/src/core/data_access/Criteria.php Developed
/trunk/SCCB/ProductLibrary/Code/src/core/data_access/Limit.php Path
yazmalı... Elimde bu şekilde yaklaşık 6000 veri olduğu için bu olayı bir algoritma ile çözmem şart. Derdimi anlatabildim mi pek emin değilim ama yardım edebilecek birileri çıkarsa inanılmaz makbule geçicek. -
karşılayan derken, a dosyasındaki herhangibir satırdaki yazıyı b dosyasında herkangibir satırdan otomatik buludurup yanına getirtebilrim.
-
siyahbereli bunu yazdı:
-----------------------------karşılayan derken, a dosyasındaki herhangibir satırdaki yazıyı b dosyasında herkangibir satırdan otomatik buludurup yanına getirtebilrim.
-----------------------------Hocam işte örnekte verdiğim gibi
A dosyasında
/trunk/SCCB/ProductLibrary/Code/src/core/data_access/Limit.php
var.
B dosyasında
1. sütun 2.sütun
src/core/data_access/Limit.php Path
şeklinde.
Benim amacım A dosyasındaki uyuşan bilgilerin yanına yeni bir sütun açıp o sütuna B dosyasındaki bilgiyi eklemek. Örneğin verdiğim bu örnekte Path yazdırmak.
Yani son istediğim şekil şöyle;
1. sütun 2.sütun
/trunk/SCCB/ProductLibrary/Code/src/core/data_access/Limit.php Path
-
şöyle mümkün olabilir, hersatırdaki verilerin içierisinde bulunan ortak bir ID yada harften sorgulanırsa satırlar yan yana gelecektir diye düşünüyorum.
-
vlookup komutu ile cok hizli yaparsin.
-
badass bunu yazdı:
-----------------------------vlookup komutu ile cok hizli yaparsin.
-----------------------------İng sürümse "vlookup", türkçe sürümse "düşeyara" formülü
-
excel dosyası üzerinden örneklersen daha anlaşılır olacaktır.
-
Hocam vlookup fonksiyonunu teknik olarak biliyorum ama bu işi yapabilecek kadar iyi değilim, vaktim de sınırlı direk fonksiyon verebilirseniz daha iyi olur (ingilizce sürüm). Aşağı linki paylaşıyorum. Olay şu, B nin içindeki ilk sütundaki bilgiler ile A nın içindeki ilk sütundaki bilgiler karşılaştırılıyor ve sonuçta C şeklinde yeni bir dosya oluşturuluyor. Ama zorluk şu ki sütundaki bilgilerin sadece bir kısımdan sonraki yeri uyuşuyor tamamı değil.
http://s2.dosya.tc/server16/Ai5KJn/Excel.rar.html
-
Hala tam anlamış değilim ama uzun yoldan şöyle yapılabilinir.
Senin örneğine göre tüm hücrelerde bu ifade sabit "/trunk/SCCB/ProductLibrary/Code" bu ifadeden sonrasıda zaten karşılaştırılacak kısım.
ctrl+H ile değiştir kısmında aranan kısmına bu ifade girilir yeni değer kısmı boş bırakılarak tümünü değiştire basılıp ilgili ifadeler silinir.
Daha sonra "=Eğer" fonksiyonuyla karşılaştırma yapılarak yandaki hücreye sonuç (path,developed gibi) yazdırılır.
ilgili ifade yeniden yazılması gerekiyorsa "=birleştir" komutuyla yeniden yazdırılır.
Biraz uzun oldu ama...
-
Evet hocam o yöntem benim de aklıma geldi ama birleştir olayından haberim yoktu benim tabi. Peki bunu tüm satırlar için uygulama olayını nasıl yapmam gerekiyor ?
-
B dpsyasındaki bilgi sayısı çok fazla ise oldukça uzun bir eğer formülü kullanman gerek.
Formülü yazdıktan sonra sabit bilgiler için başına dolar işareti koyup formüllü hücreyi sağ alttan aşağı doğru çekmen yeterli.
Makro falanda yazılacak olsa algoritması aşağı yukarı böyle olurdu.