Note: The other languages of the website are Google-translated. Back to English

Excel'de bir hücrede birden çok değer döndürmek için vlookup nasıl yapılır?

Normalde Excel'de, DÜŞEYARA işlevini kullandığınızda, ölçütlerle eşleşen birden çok değer varsa, yalnızca ilkini alabilirsiniz. Ancak bazen, aşağıdaki ekran görüntüsü gibi kriterleri karşılayan tüm karşılık gelen değerleri tek bir hücreye döndürmek istersiniz, bunu nasıl çözebilirsiniz?

Vlookup, METİNBİRLEŞTİR işleviyle birden çok değeri tek bir hücreye döndürmek için (Excel 2019 ve Office 365)

Vlookup, Kullanıcı Tanımlı İşlevle birden çok değeri tek bir hücreye döndürmek için

Vlookup kullanışlı bir özellikle birden fazla değeri tek bir hücreye döndürmek için


Vlookup, METİNBİRLEŞTİR işleviyle birden çok değeri tek bir hücreye döndürmek için (Excel 2019 ve Office 365)

Excel 2019 ve Office 365 gibi Excel'in daha yüksek sürümüne sahipseniz, yeni bir işlev vardır - METİN BİRLEŞTİRME, bu güçlü işlevle, hızlı bir şekilde bakabilir ve eşleşen tüm değerleri tek bir hücreye döndürebilirsiniz.

Tüm eşleşen değerleri tek bir hücreye döndürmek için Vlookup

Lütfen aşağıdaki formülü sonucu koymak istediğiniz boş bir hücreye uygulayın, ardından tuşuna basın Ctrl + Üst Karakter + Enter ilk sonucu elde etmek için anahtarları bir araya getirin ve ardından doldurma tutamacını bu formülü kullanmak istediğiniz hücreye sürükleyin ve aşağıdaki ekran görüntüsü gibi karşılık gelen tüm değerleri alacaksınız:

=TEXTJOIN(",",TRUE,IF($A$2:$A$11=E2,$C$2:$C$11,""))

Not: Yukarıdaki formülde, A2: A11 arama aralığı arama verilerini içeriyor mu, E2 arama değeridir, C2: C11 eşleşen değerleri döndürmek istediğiniz veri aralığıdır ",", birden çok kaydı ayırmak için ayırıcıdır.

Vlookup, tüm eşleşen değerleri yinelenmeden tek bir hücreye döndürmek için

Arama verilerine dayalı olarak eşleşen tüm değerleri yineleme olmadan döndürmek istiyorsanız, aşağıdaki formül size yardımcı olabilir.

Lütfen aşağıdaki formülü kopyalayıp boş bir hücreye yapıştırın, ardından Ctrl + Üst Karakter + Enter ilk sonucu elde etmek için anahtarları bir araya getirin ve ardından bu formülü diğer hücreleri doldurmak için kopyalayın ve aşağıda gösterilen ekran görüntüsü gibi, karşılık gelen değerleri olmadan karşılık gelen tüm değerleri alacaksınız:

=TEXTJOIN(",", TRUE, IF(IFERROR(MATCH($C$2:$C$11, IF(E2=$A$2:$A$11, $C$2:$C$11, ""), 0),"")=MATCH(ROW($C$2:$C$11), ROW($C$2:$C$11)), $C$2:$C$11, ""))

Not: Yukarıdaki formülde, A2: A11 arama aralığı arama verilerini içeriyor mu, E2 arama değeridir, C2: C11 eşleşen değerleri döndürmek istediğiniz veri aralığıdır ",", birden çok kaydı ayırmak için ayırıcıdır.

Vlookup, Kullanıcı Tanımlı İşlevle birden çok değeri tek bir hücreye döndürmek için

Yukarıdaki METİN BİRLEŞTİRME işlevi yalnızca Excel 2019 ve Office 365 için kullanılabilir; daha düşük Excel sürümlerine sahipseniz, bu görevi tamamlamak için bazı kodlar kullanmanız gerekir.

Tüm eşleşen değerleri tek bir hücreye döndürmek için Vlookup

1. Basılı tutun ALT + F11 anahtarlar ve açılır Uygulamalar için Microsoft Visual Basic pencere.

2. tıklayın Ekle > modülve aşağıdaki kodu Modül Penceresi.

VBA kodu: Bir hücreye birden çok değer döndürmek için Vlookup

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
'Updateby Extendoffice
Dim xResult As String
On Error Resume Next
If CriteriaRange.Count <> ConcatenateRange.Count Then
    ConcatenateIf = CVErr(xlErrRef)
    Exit Function
End If
For i = 1 To CriteriaRange.Count
    If CriteriaRange.Cells(i).Value = Condition Then
        xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
    End If
Next i
If xResult <> "" Then
    xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function

3. Ardından bu kodu kaydedip kapatın, çalışma sayfasına geri dönün ve şu formülü girin: =CONCATENATEIF($A$2:$A$11, E2, $C$2:$C$11, ", ") Sonucu yerleştirmek istediğiniz belirli bir boş hücreye yerleştirin, ardından istediğiniz tüm ilgili değerleri tek bir hücrede almak için dolgu tutamacını aşağı sürükleyin, ekran görüntüsüne bakın:

Not: Yukarıdaki formülde, A2: A11 arama aralığı arama verilerini içeriyor mu, E2 arama değeridir, C2: C11 eşleşen değerleri döndürmek istediğiniz veri aralığıdır ",", birden çok kaydı ayırmak için ayırıcıdır.

Vlookup, tüm eşleşen değerleri yinelenmeden tek bir hücreye döndürmek için

Döndürülen eşleşen değerlerde kopyaları yok saymak için lütfen aşağıdaki kodu uygulayın.

1. Basılı tutun Alt + F11 tuşlarını açmak için Uygulamalar için Microsoft Visual Basic pencere.

2. tıklayın Ekle > modülve aşağıdaki kodu Modül Penceresi.

VBA kodu: Vlookup ve tek bir hücreye birden fazla benzersiz eşleşen değer döndürür

Function MultipleLookupNoRept(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer)
'Updateby Extendoffice
    Dim xDic As New Dictionary
    Dim xRows As Long
    Dim xStr As String
    Dim i As Long
    On Error Resume Next
    xRows = LookupRange.Rows.Count
    For i = 1 To xRows
        If LookupRange.Columns(1).Cells(i).Value = Lookupvalue Then
            xDic.Add LookupRange.Columns(ColumnNumber).Cells(i).Value, ""
        End If
    Next
    xStr = ""
    MultipleLookupNoRept = xStr
    If xDic.Count > 0 Then
        For i = 0 To xDic.Count - 1
            xStr = xStr & xDic.Keys(i) & ","
        Next
        MultipleLookupNoRept = Left(xStr, Len(xStr) - 1)
    End If
End Function

3. Kodu ekledikten sonra, ardından Tools > Referanslar açıldığında Uygulamalar için Microsoft Visual Basic pencerede ve ardından dışarıda Referanslar - VBAProject iletişim kutusu, işaretleyin Microsoft Komut Dosyası Çalışma Zamanı seçeneği Mevcut Referanslar liste kutusu, ekran görüntülerine bakın:

4. Sonra tıklayın OK iletişim kutusunu kapatmak, kod penceresini kaydedip kapatmak, çalışma sayfasına geri dönün ve şu formülü girin: =MultipleLookupNoRept(E2,$A$2:$C$11,3) into a blank cell where you want to output the result, and then drag the fill hanlde down to get all matching values, see screenshot:

Not: Yukarıdaki formülde, A2: C11 kullanmak istediğiniz veri aralığı, E2 arama değeri, sayı 3 döndürülen değerleri içeren sütun numarasıdır.

Vlookup kullanışlı bir özellikle birden fazla değeri tek bir hücreye döndürmek için

 Eğer varsa Kutools for Excel, Onun ile Gelişmiş Kombine Satırları özelliği, satırları aynı değere göre hızlı bir şekilde birleştirebilir veya birleştirebilir ve ihtiyaç duyduğunuzda bazı hesaplamalar yapabilirsiniz.

Not:Bunu uygulamak için Gelişmiş Kombine Satırlarıöncelikle Kutools for Excelve ardından özelliği hızlı ve kolay bir şekilde uygulayın.

Kurduktan sonra Kutools for Excellütfen aşağıdaki işlemleri yapın:

1. Bir sütun verilerini başka bir sütuna göre birleştirmek istediğiniz veri aralığını seçin.

2. tıklayın Kutools > Birleştir ve Böl > Gelişmiş Kombine Satırları, ekran görüntüsüne bakın:

3. Dışarı fırladı Gelişmiş Kombine Satırları iletişim kutusu:

  • Temel olarak birleştirilecek anahtar sütun adını tıklayın ve ardından Birincil anahtar
  • Ardından, verilerini anahtar sütununa göre birleştirmek istediğiniz başka bir sütunu tıklayın ve Birleştirmek Birleştirilmiş verileri ayırmak için bir ayırıcı seçmek için.

4. Sonra tıklayın OK düğmesi ve aşağıdaki sonuçları alacaksınız:

Kutools for Excel'i şimdi indirin ve ücretsiz deneyin!


Daha ilgili makaleler:

  • Bazı Temel ve Gelişmiş Örneklerle DÜŞEYARA İşlevi
  • Excel'de DÜŞEYARA işlevi, Excel kullanıcılarının çoğu için güçlü bir işlevdir ve veri aralığının en solunda bir değer aramak ve belirttiğiniz bir sütundan aynı satırda eşleşen bir değer döndürmek için kullanılır. Bu eğitim, Excel'deki bazı temel ve gelişmiş örneklerle DÜŞEYARA işlevinin nasıl kullanılacağından bahsediyor.
  • Bir veya birden çok ölçüte göre birden çok eşleşen değer döndür
  • Normalde, belirli bir değeri aramak ve eşleşen öğeyi döndürmek, DÜŞEYARA işlevini kullanarak çoğumuz için kolaydır. Ancak, bir veya daha fazla kritere göre birden çok eşleşen değer döndürmeyi hiç denediniz mi? Bu yazıda, bu karmaşık görevi Excel'de çözmek için bazı formüller tanıtacağım.
  • Vlookup Ve Dikey Olarak Birden Çok Değer Döndür
  • Normalde, ilk karşılık gelen değeri almak için Vlookup işlevini kullanabilirsiniz, ancak bazen, eşleşen tüm kayıtları belirli bir kritere göre döndürmek istersiniz. Bu yazıda, tüm eşleşen değerlerin dikey, yatay veya tek bir hücreye nasıl bakılacağı ve döndürüleceği hakkında konuşacağım.
  • Vlookup ve Açılır Listeden Birden Çok Değer Döndür
  • Excel'de, bir açılır listeden birden çok karşılık gelen değeri nasıl görüntüleyebilir ve döndürebilirsiniz; bu, açılır listeden bir öğe seçtiğinizde, tüm göreli değerlerinin aynı anda görüntülendiği anlamına gelir. Bu yazıda çözümü adım adım tanıtacağım.

En İyi Ofis Üretkenliği Araçları

Kutools for Excel Sorunlarınızın Çoğunu Çözer ve Verimliliğinizi% 80 Artırır

  • Yeniden: Hızlıca yerleştirin karmaşık formüller, grafikler ve daha önce kullandığınız her şey; Hücreleri Şifrele şifre ile; Posta Listesi Oluşturun ve e-posta gönder ...
  • Süper Formül Çubuğu (birden çok metin ve formül satırını kolayca düzenleyin); Okuma Düzeni (çok sayıda hücreyi kolayca okuyun ve düzenleyin); Filtrelenmiş Aralığa Yapıştır...
  • Hücreleri / Satırları / Sütunları Birleştirme Veri kaybetmeden; Bölünmüş Hücre İçeriği; Yinelenen Satırları / Sütunları Birleştirme... Yinelenen Hücreleri Önleyin; Aralıkları Karşılaştır...
  • Yinelenen veya Benzersiz'i seçin Satırlar; Boş Satırları Seçin (tüm hücreler boştur); Süper Bul ve Bulanık Bul Birçok Çalışma Kitabında; Rastgele Seçim ...
  • Tam kopya Formül referansını değiştirmeden Birden Çok Hücre; Otomatik Referans Oluştur Birden Çok Sayfaya; Madde İşaretleri Ekle, Onay Kutuları ve daha fazlası ...
  • Metni Çıkar, Metin Ekle, Konuma Göre Kaldır, Alanı Kaldır; Sayfalama Alt Toplamları Oluşturma ve Yazdırma; Hücre İçeriği ve Yorumları Arasında Dönüştür...
  • Süper Filtre (filtre şemalarını kaydedin ve diğer sayfalara uygulayın); Gelişmiş Sıralama ay / hafta / gün, sıklık ve daha fazlasına göre; Özel Filtre kalın, italik ...
  • Çalışma Kitaplarını ve Çalışma Sayfalarını Birleştirin; Tabloları anahtar sütunlara göre birleştirin; Verileri Birden Çok Sayfaya Bölme; Toplu dönüştürme xls, xlsx ve PDF...
  • 300'den fazla güçlü özellik. Office / Excel 2007-2021 ve 365'i destekler. Tüm dilleri destekler. Kuruluşunuzda veya kuruluşunuzda kolay devreye alma. Tam özellikler 30 günlük ücretsiz deneme. 60 günlük para iade garantisi.
kte sekmesi 201905

Office Tab, Office'e Sekmeli Arayüz Getirir ve İşinizi Çok Daha Kolay Hale Getirir

  • Word, Excel, PowerPoint'te sekmeli düzenlemeyi ve okumayı etkinleştirin, Publisher, Access, Visio ve Project.
  • Yeni pencereler yerine aynı pencerenin yeni sekmelerinde birden çok belge açın ve oluşturun.
  • Üretkenliğinizi% 50 artırır ve her gün sizin için yüzlerce fare tıklamasını azaltır!
ofis tabanı
Yorumları sıralama ölçütü
Yorumlar (43)
Henüz derecelendirme yok. İlk değerlendiren siz olun!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu formülü, döndürülen her değeri ", " ayıracak ve yalnızca benzersiz değerler döndürecek şekilde nasıl ayarlayabilirim?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Kod için teşekkürler!!

Joker karakterlere gelince, bunun bir yolu INSTR kullanmaktır.

[ If rng = pValue Then ] öğesini [ InStr(1, rng.Value, pValue) Then ] ile değiştirebilirsiniz ve büyük/küçük harfe duyarlı olmasını istemiyorsanız [ InStr(1, rng.Value, pValue, vbTextCompare) Sonra ]
Bu yorum sitedeki moderatör tarafından en aza indirildi
Yukarıdaki VBA kodu için teşekkürler. Sonuçların hücrede yeni bir satıra nasıl girileceğini söyler misiniz, yani Alt-Enter 300 400 1000 1300 gibi
Bu yorum sitedeki moderatör tarafından en aza indirildi
Yukarıdaki kodu paylaştığınız için teşekkür ederiz. Bunu birkaç aydır kullanıyorum ama bugün işe yaramıyor. Döndürülecek veri olduğunda olağan hata yerine boş hücreler alıyorum. Düşüncesi olan var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Harika iş.. Tam olarak istediğimi aldım !!! Sevdim !!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, işten gerçekten etkilendim ve bu işlevi kullanmak için bir tane oluşturmak çok kolay. ancak daha fazla desteğe ihtiyacım var. Benim ? vlookup dizimde birden çok hücreli bir hücreden nasıl sayı seçebilirim. yani hücre A1 = 100, A2 = 350, A3 = 69 C1 = 100 ise; 1222; 12133 C2 = 69; 222 D1 = Elma D2 = muz Öyleyse, karşılık gelen D100 = elma türetmek için tablo dizisi sütunumdan 1'ü nasıl seçebilirim? Bunu çözebilir ve çok zaman kazanmama yardımcı olursanız gerçekten minnettar olurum.
Bu yorum sitedeki moderatör tarafından en aza indirildi
VBA kodu için teşekkür ederiz. Tam olarak istediğimi aldım! Yalnızca " rng.Offset(0, pIndex - 1) " kodunu " rng.Offset(0, pIndex - 2) " olarak değiştirdim. MYVLOOKUP da Sağdan Sola arama yapabilir.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu tam olarak aradığım şeydi ve sadece kendi UDF'mi yapmayı düşünmedim. Ancak tam olarak DÜŞEYARA gibi çalışmayacaktır. Aradığınız dize yalnızca ilk sütunda değilse, size iletilen orijinal aralığın dışında veriler verebilir. Ad Numara Diğer ad Sütun aralıkta değil Geçti Jay 1 Jay 1 Jay 2 Jay 2 Chris 3 Chris 3 Jorge 4 Jorge 4 Jay 5 Jay 5 Jorge 6 Jorge 6 Yukarıdaki tablo A1:D7 hücreleriyse, yalnızca A1:C7'yi geçerseniz "MYVLOOKUP" işlevi, 1 1 2 döndürmesini beklediğiniz zaman 2 5 5 1 2 5 döndürür. Aşağıdaki değişiklikler sorunu giderir: Function MYVLOOKUP(pValue As String, pWorkRng As Range, pIndex As Long) 'Update 20150310 'Updated 6 /9/16 Jay Coltrain 'Rang As Range Dim xResult As String xResult = "" Dim Rows As Long, i As Long Rows = pWorkRng.Rows.Count For i = 1 To Rows If pWorkRng.Cells(i, 1). Değer = pValue Sonra xResult = xResult & " " & pWorkRng.Cells(i, 1).Offset(0, pIndex - 1) End If Next i 'Her rng In pWorkRng ' Eğer rng = pValue O zaman ' xResult = xResult & " " & rng.Offset(0, pIndex - 1) ' End If 'Next MYVLOOKUP = xResult End Function
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu harika çalışıyor, ancak yinelenenleri sonuçlardan kaldırmak için komutla ilgili yardıma ihtiyacım var. Cidden ama harika iş.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu harika çalışıyor, ancak yine de sonuçlardan kopyaları kaldırmak için komut işleviyle ilgili yardıma ihtiyacım var.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Beni bilgilendir veya yorumları takip et
Bu yorum sitedeki moderatör tarafından en aza indirildi
Hiçbir şey döndürme! MYLOOKUP'ı uyguladıktan sonra sonuç vermeden boş.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, iyi çalışıyor. Yapmak istediğim, kodu, değer sonuçlarını "///" veya başka bir işaretleyici ile ayıracak şekilde uyarlamaktır (teknik nedenlerden dolayı, yalnızca tek bir karakter ayırıcısı istemiyorum). Ayrıca, bu formülün joker karakterle çalışmadığını fark ettim. Çok fazla şey istediğimi biliyorum, ancak vlookup, yapabileceği/yapabileceği =myvlookup("*"&E6&"*",$A$2:$C$15,2) için arama yaptığımda işe yaramıyor. Herhangi bir yardım?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Önüne bak. Bu çıktıda herhangi bir ayırıcının nasıl alınacağını buldum. İlkel. Ama anladım. xResult = xResult & "///" & rng.Offset(0, pIndex - 1) En son ve en çok istenen şey, arama kriterlerinde joker karakterlerle çalışmasını sağlamaktır. Bu güzel ve parlak çözüm için tekrar teşekkür ederiz. Son derece yardımsever. Şimdi sadece makroyu çalıştırmak ve ne yaparsam yapayım kalıcı olarak excel'ime yüklemek istiyorum, böylece ihtiyacım olduğunda kullanabilirim. Ve joker karakterler! Çok teşekkür ederim. Geriye sadece joker karakterler kalıyor.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Benzersiz kayıt elde etmek için aşağıdakileri kullanabilirsiniz: (diğer kullanıcı koduna başvurarak değiştirilmiştir) İşlev MYVLOOKUP(pValue As String, pWorkRng As Range, pIndex As Long) 'Update 20150310 'Updated 6/9/16 Jay Coltrain 'Dim rng As Range Dim xResult As String xResult = "" Satırları Uzun, i As Long Rows = pWorkRng.Rows.Count For i = 1 To Rows If pWorkRng.Cells(i, 1).Value = pValue O zaman xResult = xResult & "," & pWorkRng.Cells(i, 1).Offset(0, pIndex - 1) End If Next i Dim varSection As Variant Dim sTemp As String Dim sDelimiter As String sDelimiter = "," For Her varSection In Split(xResult, sDelimiter) If InStr(1, sDelimiter & sTemp & sDelimiter, sDelimiter & varSection & sDelimiter, vbTextCompare) = 0 Sonra sTemp = sTemp & sDelimiter & varSection End If Next varSection MYVLOOKUP = Mid(sTemp, Len(sDelimiter)
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu mükemmel çalıştı, ancak 20 sekme, 50k + satır elektronik tablomda İşlevin düzgün çalışmasını sağlamak biraz zaman aldı. Şimdi BÜYÜK soru, bu sınırlandırılmış dizenin nasıl alınacağı ve ardından her girişi bir Dizin/Eşleşme (Dizin/Eşleşme ile evli değil, ancak daha hızlı görünüyor) arama değeri olarak başka bir veri kümesinde nasıl kullanılacağı ve tüm dönüşlerin SUM değerini bir hücreye döndüreceğidir. . Benim senaryom, birden fazla faturası olan Tek bir Siparişim olması. MYVLOOKUP İşleviniz, tüm faturaları tek bir hücrede geri bildirmek için mükemmel bir şekilde çalışır. Şimdi yapmak istediğim şey, rapor edilen hücreyle birleştirilmiş her bir getiriyi almak, bu diziyi döndürmek ve her faturanın ödeme tutarlarını tekrar formül hücresine geri almak. Bu konuda sunabileceğiniz her türlü yardımı takdir ediyorum ve MYVLOOKUP İşlevi için teşekkürler!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Ne yaparsam yapayım, her zaman #değer alıyorum! sonuç yerine döndürülür. vlookup gayet iyi çalışıyor, bu yüzden veriler çalışıyor. Makroları etkinleştirme sürecini zaten takip etti. Hatta her şeyi tek bir sayfada birleştirdim. Herhangi bir fikir??
Bu yorum sitedeki moderatör tarafından en aza indirildi
Harika makro, kullanışlı. Ancak, 2 kriteri kontrol etmek için değiştirilebileceğini ve üzerinde joker karakterlerin çalışmasını sağlayacak herhangi birinin bulunup bulunmadığını bilmek gerekir. Herhangi bir yardım?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Sonucu 1000 1000 -1000 göstermek yerine örneğin 1,000/1,000/(1,000) gösterecek şekilde değiştirmenin bir yolu var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Harika işlev, ancak 100,000 kaydı parçalamak, zavallı dizüstü bilgisayarım için biraz fazla olduğunu kanıtlıyor, bir gecede çalışmasına izin vermem gerekecek!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu harika, teşekkürler!
Buraya henüz hiç yorum yapılmamış
Daha Çok
Lütfen yorum yazın
Misafir olarak yayınlama
×
Bu gönderiyi değerlendirin:
0   Karakterler
Önerilen Konumlar

Bizi takip et

Telif Hakkı © 2009 - www.extendoffice.com. | Tüm hakları Saklıdır. Tarafından desteklenmektedir ExtendOffice. | | | Site Haritası
Microsoft ve Office logosu, Microsoft Corporation'ın Amerika Birleşik Devletleri ve / veya diğer ülkelerdeki ticari markaları veya tescilli ticari markalarıdır.
Sectigo SSL ile korunmaktadır