Przejdź do głównej zawartości

Jak pominąć zwracanie wielu wartości w jednej komórce w programie Excel?

Zwykle w programie Excel, gdy używasz funkcji WYSZUKAJ.PIONOWO, jeśli istnieje wiele wartości pasujących do kryteriów, możesz po prostu uzyskać pierwszą. Ale czasami chcesz zwrócić wszystkie odpowiednie wartości, które spełniają kryteria, do jednej komórki, jak pokazano na zrzucie ekranu, jak możesz to rozwiązać?

Vlookup, aby zwrócić wiele wartości do jednej komórki za pomocą funkcji TEXTJOIN (Excel 2019 i Office 365)

Vlookup, aby zwrócić wiele wartości do jednej komórki za pomocą funkcji zdefiniowanej przez użytkownika

Vlookup, aby zwrócić wiele wartości do jednej komórki z przydatną funkcją


Vlookup, aby zwrócić wiele wartości do jednej komórki za pomocą funkcji TEXTJOIN (Excel 2019 i Office 365)

Jeśli masz wyższą wersję programu Excel, taką jak Excel 2019 i Office 365, dostępna jest nowa funkcja - TEKSTJOINDzięki tej potężnej funkcji możesz szybko przeglądać i zwracać wszystkie pasujące wartości do jednej komórki.

Vlookup, aby zwrócić wszystkie pasujące wartości do jednej komórki

Zastosuj poniższą formułę do pustej komórki, w której chcesz umieścić wynik, a następnie naciśnij Ctrl + Shift + Enter klucze razem, aby uzyskać pierwszy wynik, a następnie przeciągnij uchwyt wypełniania w dół do komórki, której chcesz użyć tej formuły, a otrzymasz wszystkie odpowiednie wartości, jak pokazano na zrzucie ekranu:

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

Uwaga: W powyższym wzorze A2: A11 czy zakres wyszukiwania zawiera dane wyszukiwania, E2 jest wartością wyszukiwania, C2: C11 to zakres danych, z którego mają zostać zwrócone pasujące wartości, ",”jest separatorem oddzielającym wiele rekordów.

Vlookup, aby zwrócić wszystkie pasujące wartości bez duplikatów do jednej komórki

Jeśli chcesz zwrócić wszystkie pasujące wartości na podstawie danych wyszukiwania bez duplikatów, może Ci pomóc poniższy wzór.

Skopiuj i wklej poniższą formułę do pustej komórki, a następnie naciśnij Ctrl + Shift + Enter klucze razem, aby uzyskać pierwszy wynik, a następnie skopiuj tę formułę, aby wypełnić inne komórki, a otrzymasz wszystkie odpowiadające jej wartości bez zdeformowanych, jak pokazano na zrzucie ekranu:

=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, ""))

Uwaga: W powyższym wzorze A2: A11 czy zakres wyszukiwania zawiera dane wyszukiwania, E2 jest wartością wyszukiwania, C2: C11 to zakres danych, z którego mają zostać zwrócone pasujące wartości, ",”jest separatorem oddzielającym wiele rekordów.

Vlookup, aby zwrócić wiele wartości do jednej komórki za pomocą funkcji zdefiniowanej przez użytkownika

Powyższa funkcja TEXTJOIN jest dostępna tylko dla Excel 2019 i Office 365, jeśli masz inne niższe wersje Excela, powinieneś użyć niektórych kodów do zakończenia tego zadania.

Vlookup, aby zwrócić wszystkie pasujące wartości do jednej komórki

1. Przytrzymaj ALT + F11 klucze i otwiera plik Microsoft Visual Basic for Applications okno.

2. Kliknij wstawka > Modułi wklej następujący kod w Okno modułu.

Kod VBA: Vlookup zwraca wiele wartości do jednej komórki

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. Następnie zapisz i zamknij ten kod, wróć do arkusza i wprowadź następującą formułę: =CONCATENATEIF($A$2:$A$11, E2, $C$2:$C$11, ", ") do określonej pustej komórki, w której chcesz umieścić wynik, a następnie przeciągnij uchwyt wypełniania w dół, aby uzyskać wszystkie odpowiednie wartości w jednej komórce, którą chcesz, zobacz zrzut ekranu:

Uwaga: W powyższym wzorze A2: A11 czy zakres wyszukiwania zawiera dane wyszukiwania, E2 jest wartością wyszukiwania, C2: C11 to zakres danych, z którego mają zostać zwrócone pasujące wartości, ",”jest separatorem oddzielającym wiele rekordów.

Vlookup, aby zwrócić wszystkie pasujące wartości bez duplikatów do jednej komórki

Aby zignorować duplikaty w zwracanych pasujących wartościach, wykonaj poniższy kod.

1. Przytrzymaj Alt + F11 klawisze, aby otworzyć Microsoft Visual Basic for Applications okno.

2. Kliknij wstawka > Modułi wklej następujący kod w Okno modułu.

Kod VBA: przeglądaj i zwracaj wiele unikalnych dopasowanych wartości do jednej komórki

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. Po wstawieniu kodu kliknij Tools > Referencje w otwartym Microsoft Visual Basic for Applications okno, a następnie w wyskoczył Referencje - VBAProject okno dialogowe, zaznacz Środowisko wykonawcze skryptów firmy Microsoft Microsoft opcja w Dostępne referencje pole listy, zobacz zrzuty ekranu:

4. Następnie kliknij OK aby zamknąć okno dialogowe, zapisz i zamknij okno kodu, wróć do arkusza i wprowadź następującą formułę: =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:

Uwaga: W powyższym wzorze A2: C11 to zakres danych, którego chcesz użyć, E2 jest wartością wyszukiwania, liczbą 3 to numer kolumny zawierającej zwrócone wartości.

Vlookup, aby zwrócić wiele wartości do jednej komórki z przydatną funkcją

 Jeśli posiadamy Kutools dla programu Excel, Z siedzibą w Zaawansowane wiersze łączenia możesz szybko scalać lub łączyć wiersze na podstawie tej samej wartości i wykonywać obliczenia według potrzeb.

Uwaga:Aby to zastosować Zaawansowane wiersze łączenia, po pierwsze, należy pobrać plik Kutools dla programu Excel, a następnie szybko i łatwo zastosuj tę funkcję.

Po zainstalowaniu Kutools dla programu Excelwykonaj następujące czynności:

1. Wybierz zakres danych, w którym chcesz połączyć dane z jednej kolumny na podstawie innej kolumny.

2. Kliknij Kutools > Połącz i podziel > Zaawansowane wiersze łączeniazobacz zrzut ekranu:

3. W wyskoczył Zaawansowane wiersze łączenia Okno dialogowe:

  • Kliknij nazwę kolumny kluczowej, na podstawie której chcesz połączyć, a następnie kliknij Główny klucz
  • Następnie kliknij inną kolumnę, którą chcesz połączyć z danymi na podstawie kolumny kluczowej, i kliknij Połączyć aby wybrać jeden separator do oddzielenia połączonych danych.

4. Następnie kliknij OK przycisk, a otrzymasz następujące wyniki:

Pobierz i bezpłatną wersję próbną Kutools dla programu Excel teraz!


Więcej artykułów względnych:

  • Funkcja WYSZUKAJ.PIONOWO z kilkoma podstawowymi i zaawansowanymi przykładami
  • W programie Excel funkcja WYSZUKAJ.PIONOWO jest potężną funkcją dla większości użytkowników programu Excel, która służy do wyszukiwania wartości w lewym skrajnym zakresie danych i zwracania pasującej wartości w tym samym wierszu z określonej kolumny. W tym samouczku omówiono sposób korzystania z funkcji WYSZUKAJ.PIONOWO z kilkoma podstawowymi i zaawansowanymi przykładami w programie Excel.
  • Zwróć wiele pasujących wartości na podstawie jednego lub wielu kryteriów
  • Zwykle wyszukiwanie określonej wartości i zwracanie pasującego elementu jest łatwe dla większości z nas przy użyciu funkcji WYSZUKAJ.PIONOWO. Ale czy kiedykolwiek próbowałeś zwrócić wiele pasujących wartości na podstawie co najmniej jednego kryterium? W tym artykule przedstawię kilka formuł do rozwiązania tego złożonego zadania w programie Excel.
  • Wyszukaj i zwróć wiele wartości w pionie
  • Zwykle możesz użyć funkcji Vlookup, aby uzyskać pierwszą odpowiednią wartość, ale czasami chcesz zwrócić wszystkie pasujące rekordy na podstawie określonego kryterium. W tym artykule omówię, jak przeglądać i zwracać wszystkie pasujące wartości pionowo, poziomo lub do jednej komórki.
  • Wyszukaj i zwróć wiele wartości z listy rozwijanej
  • W programie Excel, jak można pominąć i zwrócić wiele odpowiadających wartości z rozwijanej listy, co oznacza, że ​​po wybraniu jednego elementu z rozwijanej listy wszystkie jego względne wartości są wyświetlane jednocześnie. W tym artykule przedstawię rozwiązanie krok po kroku.

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
Comments (43)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I have created a problem.
"I" have combined a "Textjoin" end "Vlookup" to return multiple values in to one single cell.
My problem is that the formula have to have an exact value to look for and I want it to lookup an "almost" match or Partial match.

Example: I have made a schedule how we ate going to work and a D1 is working from 07:30-16:00. And to lookup D1 is not the problem, the problem is that my boss sometimes puts other stuff togeather with the D1... Like "D1 +" or "D1 meeting".
Since my formula only lookup "D1" it misses for example the "D1 +".

My formula (that I have gotten from the web) =TEXTJOIN(" och ";SANT;OM($B$3:$B$15=$C$22:$F$22;$A$3:$A$15;""))It´s in swedish so "SANT" is "TRUE" and "OM" is "IF".

How can I make the formula lookup all the cells that have some form of "D1" in it and return all those to the same cell?
No matter if it says "D1 +" or "D1 meeting" or whatever.
The reson I want this, is because the boss always leave "D1" but can add other text behind the "D1"... and just because of that, my boss messes up my formula.
This comment was minimized by the moderator on the site
Hi!
This is a great VBA-Code which could help me a lot.But when I start the Function MultipleLookupNoRept Excel crashs...I´ve got a Dataset with about 6.000 Rows (Excel 2013).... is this too much for the VBA Function?

Thanks!
This comment was minimized by the moderator on the site
Hello Mr.XXL,Sorry to hear that. The row limit for Excel 2013 is 1048576. Therefore, maybe the VBA code is the reason for the crash.
Anyway, I would love to offer you another VBA code for Vlookup To Return All Matching Values Without Duplicates Into One Cell. Please use the VBA code below:
Option Explicit

Function Lookup_concat(Search_string As String, _
Search_in_col As Range, Return_val_col As Range)

Dim i As Long
Dim temp() As Variant
Dim result As String
ReDim temp(0)

For i = 1 To Search_in_col.Count
If Search_in_col.Cells(i, 1) = Search_string Then
temp(UBound(temp)) = Return_val_col.Cells(i, 1).Value
ReDim Preserve temp(UBound(temp) + 1)
End If
Next

If temp(0) <> "" Then
ReDim Preserve temp(UBound(temp) - 1)
Unique temp
For i = LBound(temp) To UBound(temp)
result = result & " " & temp(i)
Next i
Lookup_concat = Trim(result)
Else
Lookup_concat = ""
End If

End Function

Function Unique(tempArray As Variant)

Dim coll As New Collection
Dim Value As Variant

On Error Resume Next
For Each Value In tempArray
If Len(Value) > 0 Then coll.Add Value, CStr(Value)
Next Value
On Error GoTo 0

ReDim tempArray(0)

For Each Value In coll
tempArray(UBound(tempArray)) = Value
ReDim Preserve tempArray(UBound(tempArray) + 1)
Next Value

End Function

After you insert this VBA code in the Module, please type the formula =Lookup_concat(E2,$A$2:$A$14,$C$2:$C$14) into a blank cell where you want to output the result, and then drag the fill hanlde down to get all matching values. Please see the file I uploaded in this comment. Hope it solves your problem. 
Sincerely,Mandy

This comment was minimized by the moderator on the site
Hi, Thanks so much this worked!I used it to pull dates, that populated in the serial number format (<span style="letter-spacing: 0.2px; color: inherit; font-family: inherit; font-style: inherit; font-variant-ligatures: inherit; font-variant-caps: inherit; font-weight: inherit;">Changing the format to short date format using =TEXT(A2,”mm/dd/yy”) OR =DATEVALUE(A2) are not working. Do you have any solutions?</span>
This comment was minimized by the moderator on the site
Thank you for the explanations, however the function 'MultipleLookupNoRept' does not work on my file, could you tell me if an error exists.
This comment was minimized by the moderator on the site
Hi, Hasnae,Please check if you miss the third step -  check Microsoft Scripting Runtime option in the Available References list box.

This comment was minimized by the moderator on the site
Thank you so much for the code. Is there a way I can use the code to look up multiple values from multiple sheets? I tried to combine your function with IFERROR function but it doesn't seem to work.
This comment was minimized by the moderator on the site
Can this be modified to place the sum of those values? Instead of (400 400 400 400 400 400), can it sum them to show (2400)?
This comment was minimized by the moderator on the site
How with HLookUp function?
This comment was minimized by the moderator on the site
thanks for the code. I have modified it to allow you to optionally specify your own separator, Default is " ", if you specify the separator as"#cr" it will insert a CR/LF so the values will be on a separate line in the cell. It only applies the separator if there are multiple values

Function MYVLOOKUP(pValue As String, pWorkRng As Range, pIndex As Long, Optional ByVal pSep As Variant)

' ### Returns multiple values from a table into 1 cell ###

' pValue is the key value to lookup

' WorkRng is the Table you want to look up

' pIndex is the column # for the values to be returned from the pWorkRng

' pSep (optional) is the separator to be used. if omitted then default is a space (it doesn't apply the separator for the 1st entry)

' if the separtor = "#cr" it will separate the values on different line in the cell

Dim rng As Range

Dim sSep As String

Dim xResult As String

Dim Item1 As Boolean

Item1 = True



If IsMissing(pSep) = True Then

sSep = vbCr

Else

If pSep = "#cr" Then

sSep = vbCrLf

Else

sSep = pSep

End If

End If



xResult = ""

For Each rng In pWorkRng

If rng = pValue Then

If Item1 Then

xResult = xResult & rng.Offset(0, pIndex - 1)

Item1 = False

Else

xResult = xResult & sSep & rng.Offset(0, pIndex - 1)

End If

End If

Next

MYVLOOKUP = xResult

End Function
This comment was minimized by the moderator on the site
Thank you for this, the line breaks are what i needed to top this formula off! Question, is there a way to modify the code so that two values are compared? For example, similar to what we see with index and match, can i look for Product and Quantity columns, and based on those parameters it outputs results from the Region Column?
This comment was minimized by the moderator on the site
Thanks a lot for this code, it is very helpful. Does anyone know away to sum the values in the cell to just have at total of them.
Cheers
This comment was minimized by the moderator on the site
Hello, James, to sum values based on the corresponding items, the following article may help you, please chek it:
https://www.extendoffice.com/documents/excel/1268-excel-combine-duplicate-rows-and-sum.html
This comment was minimized by the moderator on the site
I have a server, it has connected with multiple applications. I want to compare compare two column and get the related applications details for that server.

What is the command for that.
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations