İki çalışma sayfasını Excel'de SQL'de olduğu gibi nasıl birleştiririm?


121

İki farklı Excel dosyasında iki çalışma sayfam var. Her ikisi de bir isim, kimlik numarası ve ilişkili veri listesini içerir. Bunlardan biri genel demografik alanları içeren bir ana liste, diğeri ise yalnızca ad, kimlik ve bir adres içeren bir liste. Bu liste ana listeden başka bir ofis tarafından ayrıldı.

İlkini filtrelemek için 2. listeyi kullanmak istiyorum. Ayrıca, sonuçların ana çalışma sayfasındaki diğer alanları da ikinci çalışma sayfasındaki adres alanlarıyla birlikte içermesini istiyorum. Bunu bir veritabanı iç birleştirmesi ile nasıl çok kolay yapabildiğimi biliyorum, ancak bunu Excel'de nasıl verimli bir şekilde yapabileceğim konusunda daha az netim var. Excel'de iki çalışma sayfasına nasıl katılabilir? Dış birleşimlerin nasıl yapıldığını da gösteren bonuslar ve bunu bir makroya ihtiyaç duymadan nasıl yapacağımı bilmeyi tercih ederim.


1
Aşağıdaki sayfayı çok yararlı buluyorum: randomwok.com/excel/how-to-use-index-match
Tommy Bravo

randomwok.com/excel/how-to-use-index-match => sonundaki özellikle kolay "hatırlatma":=INDEX ( Column_I_want_a_return_value_from , ( MATCH ( My_Lookup_Value , Column_I_want_to_Lookup_against , 0 ))
Tommy Bravo

Yanıtlar:


157

2007+ kullanım için Data> From Other Sources> From Microsoft Query:

  1. seç Excel Fileve ilk excel'ini seç
  2. sütunları seçin
    (herhangi bir sütun listesi görmüyorsanız, kontrol ettiğinizden emin olun Options> System Tables)
  3. gidin Data> Connections>> [yeni oluşturulan bağlantıyı seçin] Properties> Definition>Command text

Şimdi bunu Command textSQL olarak düzenleyebilirsiniz . Hangi sözdiziminin geçerliliğinden emin değilim, ancak örtük katılımları, "iç katılımları", "ayrılmaları" ve hepsinin çalıştığı sendikaları denedim. İşte örnek bir sorgu:

SELECT *
FROM `C:\Users\Peter\Documents\Excel-to-excel\Source_1.xlsx`.`Sheet1$` a
LEFT JOIN `C:\Users\Peter\Documents\Excel-to-excel\Source_2.xlsx`.`Sheet1$` b
ON a.col2 = b.col2

1
Yolu kodlamaktan kaçınmanın bir yolu var mı? Göreceli yol işe yarar mı?
Rekin

25
Ek bir avantaj olarak, Microsoft Query, Excel dosyasını açmak ve ileti kutuları için 16 bit stili Ortak Denetimlerle karşılaşmanıza olanak tanır. Bu şekilde genç olduğunuzu hatırlayabilirsiniz. :-)
Edward Brey

Bu, CSV dosyalarıyla çalışır mı? MS Office Professional Plus 2010 kullanıyorum ve 3. adımı nasıl izleyeceğimi görmüyorum - 2. adıma takılan iletişim kutusundan ayrılmalı mıyım? Bağlantılar iletişim kutumda "yeni bağlantınızı seçin" yok.
John Freeman

@JohnFreeman , gereksinimlerinize göre mevcut seçeneklerden birini seçmeniz gerektiğinden (örneğin 'Ekle ...')
Aprillion

3
'Bu veri kaynağı görünür tablo içermiyor' ve ardından 'Sorgu Sihirbazı - Sütunları Seç' iletişim kutusunu belirten bir iletişim kutusu alabileceğinizi unutmayın. O dan bu daha sonra, 'Seçenekler' butonuna tıklayın sorgulamak istediğiniz verileri görmek için 'Sistem Tables' onay kutusunu kontrol etmek istiyorum diyalog.
Tola Odejayi

11

Kabul edilen cevabı destekleyin. Sadece "sütun seç (eğer herhangi bir sütun listesi görmüyorsanız, Seçenek> Sistem Tabloları'nı kontrol ettiğinizden emin olun" ") üzerinde durmak istiyorum.

Excel dosyasını seçtikten sonra, büyük olasılıkla bilgi this data source contains no visible tablesistemi görürsünüz ve mevcut sekmeler ve sütunlar yoktur. Microsoft , excel dosyalarındaki sekmelerin "Sistem Tabloları" olarak değerlendirildiğini ve "Sistem Tabloları" seçeneğinin varsayılan olarak seçilmediğini itiraf etti . Bu yüzden bu adımda panik yapmayın, sadece "seçenek" tıklamanız ve "Sistem Tabloları" nı işaretlemeniz yeterlidir, ardından mevcut sütunları görürsünüz.


8

VLOOKUP ve HLOOKUP, eşleşen birincil anahtarları (dikey veya yatay olarak depolanmış) aramak ve 'özellik' sütunlarından / satırlarından değerleri döndürmek için kullanılabilir.


Aynı çalışma kitabındaki sayfalar için çok yararlı (ancak INDEX + MATCH fonksiyonlarını daha kullanışlı buluyorum), kapalı çalışma kitaplarından veri güncellerken biraz daha karmaşık ...
Aprillion

7

Excel'in daha yeni sürümleri için kullanılabilen Microsoft Power Query'yi kullanabilirsiniz (kabul edilen cevaba benzer, ancak daha basit ve kolaydır). Power Query çağrıları 'birleşmeleri' çağırır.

En kolay yol 2 Excel sayfanızı Excel tablosu olarak kullanmaktır. Ardından Excel'de, Power Query ribbon sekmesine gidin ve 'Excel'den' düğmesine tıklayın. Her iki tabloyu da Power Query'e içe aktardıktan sonra, birini seçin ve 'Birleştir'i tıklayın.


3
Önerilen diğer seçeneklerden çok daha kolay. Cevap bu olmalı! Power Query şimdi Veri sekmesi altındaki Excel 2016'ya dahil edilmiştir .
SliverNinja - MSFT

1
Mac exist
juandesant'da

4

Aprillion’un Microsoft Query’i kullanan yanıtının mükemmel olduğunu düşünmeme rağmen, daha kolay bulduğum veri sayfalarına katılmak için Microsoft Access’i kullanmam için bana ilham verdi .

Elbette MS Access'in kurulu olması gerekir.

Adımlar:

  • Yeni bir Access veritabanı oluşturun (veya sıfırdan bir DB kullanın).
  • Get External DataExcel verilerinizi yeni tablolar olarak içe aktarmak için kullanın .
  • RelationshipsTablolarınızın nasıl birleştirildiğini göstermek için kullanın .
  • İlişki türünü istediğinizle eşleşecek şekilde ayarlayın (sola katılmak vs.)
  • Tablolarınızı birleştiren yeni bir sorgu oluşturun.
  • External Data->Export to ExcelSonuçlarınızı üretmek için kullanın .

Bunu Aprillion'un mükemmel cevabı olmadan yapamazdım.


Bugüne kadar hiç erişim kullanmadım, ama bu sadece 10 dakikamı aldı. Excel sütunlarını içe aktarmak yerine 2 tabloya kopyaladım / yapıştırdım.
jiggunjer

3

Excel tablolarındaki SQL stil birleşimlerini Excel içinden önceden oluşturamazsınız. Bununla birlikte, yapmaya çalıştığınız şeyi başarmanın birçok yolu vardır.

Excel'de, Reuben'ın dediği gibi, muhtemelen en iyi çalışacak formüller VLOOKUPve HLOOKUP. Her iki durumda da, benzersiz bir satırda eşleşirsiniz ve verilen sütunun değerini \ satırın bulunan kimliğinden sola \ aşağı döndürür.

İkinci listeye yalnızca birkaç tane fazla alan eklemek istiyorsanız, formülleri ikinci listeye ekleyin. Bir "dış birleştirme" stil tablosu istiyorsanız, aramanın bulunup bulunmadığını test VLOOKUPetmek için formülü ilk listeye ekleyin ISNA. Excel'in Yardımı size özel örneğinizde bunların nasıl kullanılacağı hakkında yeterli bilgi vermezse, bize bildirin.

SQL kullanmayı tercih ediyorsanız, verileri veritabanı programınıza bağlayın, sorgunuzu oluşturun ve sonuçları tekrar Excel'e aktarın. (Access'te Bağlantılı Tablo olarak Excel Çalışma Sayfalarını veya Adlandırılmış Aralıkları içe aktarabilirsiniz.)


12
aslında, yapabilirsiniz - buna Microsoft Query
Aprillion

3

XLTools.net'te MS Query'nin özellikle Excel tablolarına karşı SQL Queries ile çalışması için iyi bir alternatif oluşturduk. Buna XLTools SQL Sorguları denir . MS Query yerine kullanmak çok daha kolaydır ve sadece SQL oluşturmanız ve çalıştırmanız gerekiyorsa gerçekten iyi çalışır - VBA yok, MS Query ile karmaşık manipülasyonlar yok ...

Bu araçla, gömülü SQL düzenleyiciyi kullanarak Excel çalışma kitaplarındaki tablolara karşı herhangi bir SQL sorgusu oluşturabilir ve sonuçları yeni veya mevcut bir çalışma sayfasına koyma seçeneğiyle hemen çalıştırabilirsiniz.

LEFT OUTER JOIN de dahil olmak üzere hemen hemen her türlü birleşim kullanabilirsiniz (yalnızca RIGHT OUTER JOIN ve FULL OUTER JOIN desteklenmez).

İşte bir örnek:

XLTools SQL Sorguları - Sorgu Oluşturucusu


2

Excel 2007 Kullanıcısı için: Veriler> Diğer Kaynaklardan> Microsoft Query'den> Excel dosyasına göz atın

Bu makaleye göre , XLS 2003 sürümünden sorgulamak "Bu veri kaynağı görünür tablo içermiyor" şeklinde sonuçlanabilir. Hata çünkü çalışma sayfalarınız SİSTEM tablosu olarak kabul edilir. Bu nedenle, sorguyu oluşturduğunuzda "Sorgu Sihirbazı - Sütunları Seçin" iletişim kutusundaki "Sistem Tabloları" nı kontrol edin.

Katılmanızı tanımlamak için: Microsoft Sorgu iletişim kutusu> Tablo menüsü> Katıldı ...

Verileri orijinal Excel sayfanıza döndürmek için, Microsoft Sorgu iletişim kutusundan> Dosya menüsünden "Excel Sayfasına Döndür" seçeneğini seçin.


0

Veritabanlarına yeterince aşina iseniz, her iki çalışma sayfasını da Bağlantılı Sunucu olarak bağlamak için SQL Server'ı ve ardından arka uç veri çalışmanızı yapmak için T-SQL'i kullanabilirsiniz. Ardından Excel'i tekrar SQL'e bağlayarak bitirin ve verileri bir tabloya (normal veya pivot) çekerek bitirin. Powerpivot kullanmayı da düşünebilirsiniz; düz veritabanları olarak kullanılan Excel dahil olmak üzere herhangi bir veritabanı kaynağı arasındaki birleşime izin verecektir.


2
Haklısınız, ancak ilk soru bir veritabanı işlevi yapmak için bir elektronik tablo (veya iki) kullanmaya dayanıyor, bu yüzden görevi başarmanın gerçekten etkili bir yolundan emin değilim.
dav

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.