Salt la conținutul principal

Cum să vizualizați pentru a returna mai multe valori într-o singură celulă în Excel?

În mod normal, în Excel, când utilizați funcția VLOOKUP, dacă există mai multe valori care să corespundă criteriilor, puteți obține prima. Dar, uneori, doriți să returnați toate valorile corespunzătoare care îndeplinesc criteriile într-o singură celulă, după cum se arată în următoarea captură de ecran, cum ați putea să o rezolvați?

Vlookup pentru a returna mai multe valori într-o singură celulă cu funcția TEXTJOIN (Excel 2019 și Office 365)

Vlookup pentru a returna mai multe valori într-o singură celulă cu funcția definită de utilizator

Vlookup pentru a returna mai multe valori într-o singură celulă cu o caracteristică utilă


Vlookup pentru a returna mai multe valori într-o singură celulă cu funcția TEXTJOIN (Excel 2019 și Office 365)

Dacă aveți versiunea superioară a Excelului, cum ar fi Excel 2019 și Office 365, există o nouă funcție - TEXTJOIN, cu această funcție puternică, puteți vizualiza și returna rapid toate valorile potrivite într-o singură celulă.

Vlookup pentru a returna toate valorile potrivite într-o singură celulă

Vă rugăm să aplicați formula de mai jos într-o celulă goală unde doriți să puneți rezultatul, apoi apăsați Ctrl + Shift + Enter tastele împreună pentru a obține primul rezultat, apoi glisați mânerul de umplere în jos în celula pe care doriți să o utilizați cu această formulă și veți obține toate valorile corespunzătoare, după cum se arată în imaginea de mai jos:

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

Notă: În formula de mai sus, A2: A11 este intervalul de căutare conține datele de căutare, E2 este valoarea de căutare, C2: C11 este intervalul de date din care doriți să returnați valorile potrivite, ","este separatorul pentru a separa înregistrările multiple.

Vlookup pentru a returna toate valorile potrivite fără duplicate într-o singură celulă

Dacă doriți să returnați toate valorile potrivite pe baza datelor de căutare fără duplicate, formula de mai jos vă poate ajuta.

Vă rugăm să copiați și să lipiți următoarea formulă într-o celulă goală, apoi apăsați Ctrl + Shift + Enter tastele împreună pentru a obține primul rezultat, apoi copiați această formulă pentru a umple alte celule și veți obține toate valorile corespunzătoare fără cele dulpicate, după cum se arată în imaginea de mai jos:

=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ă: În formula de mai sus, A2: A11 este intervalul de căutare conține datele de căutare, E2 este valoarea de căutare, C2: C11 este intervalul de date din care doriți să returnați valorile potrivite, ","este separatorul pentru a separa înregistrările multiple.

Vlookup pentru a returna mai multe valori într-o singură celulă cu funcția definită de utilizator

Funcția TEXTJOIN de mai sus este disponibilă numai pentru Excel 2019 și Office 365, dacă aveți alte versiuni mai mici de Excel, ar trebui să utilizați câteva coduri pentru finalizarea acestei sarcini.

Vlookup pentru a returna toate valorile potrivite într-o singură celulă

1. Țineți apăsat butonul ALT + F11 tastele și deschide fișierul Microsoft Visual Basic pentru aplicații fereastră.

2. Clic Insera > Moduleși lipiți următorul cod în Fereastra modulului.

Cod VBA: Vlookup pentru a returna mai multe valori într-o singură celulă

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. Apoi salvați și închideți acest cod, reveniți la foaia de lucru și introduceți această formulă: =CONCATENATEIF($A$2:$A$11, E2, $C$2:$C$11, ", ") într-o celulă goală specifică în care doriți să plasați rezultatul, apoi trageți mânerul de umplere în jos pentru a obține toate valorile corespunzătoare într-o celulă pe care o doriți, vedeți captura de ecran:

Notă: În formula de mai sus, A2: A11 este intervalul de căutare conține datele de căutare, E2 este valoarea de căutare, C2: C11 este intervalul de date din care doriți să returnați valorile potrivite, ","este separatorul pentru a separa înregistrările multiple.

Vlookup pentru a returna toate valorile potrivite fără duplicate într-o singură celulă

Pentru a ignora duplicatele din valorile de potrivire returnate, faceți acest lucru cu codul de mai jos.

1. Țineți apăsat butonul Alt + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

2. Clic Insera > Moduleși lipiți următorul cod în Fereastra modulului.

Cod VBA: Vlookup și returnează mai multe valori unice potrivite într-o singură celulă

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. După introducerea codului, faceți clic pe Instrumente > Referinte în deschise Microsoft Visual Basic pentru aplicații fereastră, apoi, în fereastra ieșită Referințe - VBAProject casetă de dialog, bifați Runtime Microsoft Scripting opțiune în Referințe disponibile casetă listă, vezi capturi de ecran:

4. Apoi apasa OK pentru a închide caseta de dialog, salvați și închideți fereastra de cod, reveniți la foaia de lucru și introduceți această formulă: =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ă: În formula de mai sus, A2: C11 este intervalul de date pe care doriți să îl utilizați, E2 este valoarea de căutare, numărul 3 este numărul coloanei care conține valorile returnate.

Vlookup pentru a returna mai multe valori într-o singură celulă cu o caracteristică utilă

 Dacă aveți noastre Kutools pentru Excel, Cu său Rânduri combinate avansate caracteristică, puteți îmbina sau combina rapid rândurile pe baza aceleiași valori și puteți face unele calcule după cum aveți nevoie.

Notă:Pentru a aplica acest lucru Rânduri combinate avansate, în primul rând, ar trebui să descărcați fișierul Kutools pentru Excel, apoi aplicați caracteristica rapid și ușor.

După instalare Kutools pentru Excel, vă rugăm să faceți următoarele:

1. Selectați intervalul de date pe care doriți să combinați datele unei coloane pe baza altei coloane.

2. Clic Kutools > Merge & Split > Rânduri combinate avansate, vezi captura de ecran:

3. În pop-out Rânduri combinate avansate căsuță de dialog:

  • Faceți clic pe numele coloanei cheie pentru a fi combinat, apoi faceți clic pe Cheia principala
  • Apoi faceți clic pe o altă coloană pe care doriți să o combinați pe baza coloanei cheie și faceți clic pe Combina pentru a alege un separator pentru separarea datelor combinate.

4. Apoi faceți clic pe OK și veți obține următoarele rezultate:

Descărcați și proba gratuită Kutools pentru Excel acum!


Mai multe articole relative:

  • Funcția VLOOKUP cu câteva exemple de bază și avansate
  • În Excel, funcția VLOOKUP este o funcție puternică pentru majoritatea utilizatorilor Excel, care este utilizată pentru a căuta o valoare în partea din stânga a intervalului de date și pentru a returna o valoare potrivită în același rând dintr-o coloană pe care ați specificat-o. Acest tutorial vorbește despre cum să utilizați funcția VLOOKUP cu câteva exemple de bază și avansate în Excel.
  • Returnează mai multe valori de potrivire pe baza unuia sau mai multor criterii
  • În mod normal, căutarea unei valori specifice și returnarea articolului care se potrivește este ușor pentru majoritatea dintre noi utilizând funcția VLOOKUP. Dar, ați încercat vreodată să returnați mai multe valori de potrivire pe baza unuia sau mai multor criterii? În acest articol, voi introduce câteva formule pentru rezolvarea acestei sarcini complexe în Excel.
  • Vizualizați și returnați mai multe valori pe verticală
  • În mod normal, puteți utiliza funcția Vlookup pentru a obține prima valoare corespunzătoare, dar, uneori, doriți să returnați toate înregistrările de potrivire pe baza unui criteriu specific. În acest articol, voi vorbi despre cum să vizualizați și să returnați toate valorile potrivite pe verticală, orizontală sau într-o singură celulă.
  • Vizualizați și returnați mai multe valori din lista derulantă
  • În Excel, cum ați putea să căutați și să returnați mai multe valori corespunzătoare dintr-o listă derulantă, ceea ce înseamnă că atunci când alegeți un articol din lista derulantă, toate valorile sale relative sunt afișate simultan. În acest articol, voi introduce soluția pas cu pas.

Cele mai bune instrumente de productivitate de birou

Caracteristici populare: Găsiți, evidențiați sau identificați duplicatele   |  Ștergeți rândurile goale   |  Combinați coloane sau celule fără a pierde date   |   Rundă fără Formula ...
Super căutare: VLookup cu mai multe criterii    VLookup cu valori multiple  |   VLookup pe mai multe foi   |   Căutare fuzzy ....
Listă derulantă avansată: Creați rapid o listă derulantă   |  Listă drop-down dependentă   |  Listă derulantă cu selectare multiplă ....
Manager de coloane: Adăugați un număr specific de coloane  |  Mutați coloanele  |  Comutați starea vizibilității coloanelor ascunse  |  Comparați intervale și coloane ...
Caracteristici prezentate: Focus pe grilă   |  Vedere de proiectare   |   Big Formula Bar    Manager registru de lucru și foi   |  Biblioteca de resurse (Text automat)   |  Data Picker   |  Combinați foi de lucru   |  Criptare/Decriptare celule    Trimiteți e-mailuri după listă   |  Super Filtru   |   Filtru special (filtrează bold/italic/barat...) ...
Top 15 seturi de instrumente12 Text Instrumente (Adăuga text, Eliminați caractere,...)   |   50+ Diagramă Tipuri de (Gantt Chart,...)   |   40+ Practic Formule (Calculați vârsta pe baza zilei de naștere,...)   |   19 inserare Instrumente (Introduceți codul QR, Inserați imaginea din cale,...)   |   12 Convertire Instrumente (Numere la cuvinte, conversie valutara,...)   |   7 Merge & Split Instrumente (Rânduri combinate avansate, Celule divizate,...)   |   ... și altele

Îmbunătățiți-vă abilitățile Excel cu Kutools pentru Excel și experimentați eficiența ca niciodată. Kutools pentru Excel oferă peste 300 de funcții avansate pentru a crește productivitatea și a economisi timp.  Faceți clic aici pentru a obține funcția de care aveți cea mai mare nevoie...

fila kte 201905


Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
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