Բաց թողնել հիմնական բովանդակությունը

Ինչպե՞ս vlookup- ը Excel- ում մեկ խցում բազմաթիվ արժեքներ վերադարձնելու համար:

Սովորաբար, Excel- ում, երբ օգտագործում եք VLOOKUP գործառույթը, եթե չափանիշներին համապատասխանող բազմաթիվ արժեքներ կան, պարզապես կարող եք ստանալ առաջինը: Բայց երբեմն ուզում եք բոլոր համապատասխան արժեքները, որոնք համապատասխանում են չափանիշներին, մեկ բջիջ վերադարձնել, ինչպես ցույց է տրված հետևյալ նկարը, ինչպե՞ս կարող եք լուծել այն:

Vlookup- ը TEXTJOIN գործառույթով մի քանի բջիջներ վերադարձնելու համար մի քանի արժեքներ (Excel 2019 և Office 365)

Vlookup ՝ օգտագործողի կողմից սահմանված գործառույթով բազմաթիվ արժեքներ մեկ բջիջ վերադառնալու համար

Vlookup ՝ մի քանի բջիջներ օգտակար հատկությամբ մեկ բջիջ վերադարձնելու համար


Vlookup- ը TEXTJOIN գործառույթով մի քանի բջիջներ վերադարձնելու համար մի քանի արժեքներ (Excel 2019 և Office 365)

Եթե ​​ունեք Excel- ի ավելի բարձր տարբերակ, ինչպիսիք են Excel 2019-ը և Office 365-ը, կա նոր գործառույթ. ՄԻԱԵԼ, այս հզոր գործառույթի միջոցով դուք կարող եք արագորեն դիտել և վերադարձնել բոլոր համապատասխան արժեքները մեկ բջիջում:

Vlookup ՝ բոլոր համապատասխան արժեքները մեկ խցում վերադարձնելու համար

Ստորև բերված բանաձևը կիրառեք դատարկ վանդակի մեջ, որտեղ ցանկանում եք տեղադրել արդյունքը, այնուհետև սեղմել Ctrl + Shift + Մուտք ստեղները միասին `առաջին արդյունքը ստանալու համար, այնուհետև լրացնելու բռնիչը ներքև քաշեք դեպի այն բջիջը, որը ցանկանում եք օգտագործել այս բանաձևը, և ​​դուք կստանաք բոլոր համապատասխան արժեքները, ինչպես ցույց է տրված ստորև նշված էկրանի նկարը.

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

Նշում: Վերոնշյալ բանաձևում A2: A11 որոնման տիրույթն է, որը պարունակում է որոնման տվյալները, E2 որոնման արժեքն է, C2: C11 տվյալների տիրույթն է, որից ուզում եք վերադարձնել համապատասխան արժեքները ",,"բաժանարարն է` մի քանի գրառումներն առանձնացնելու համար:

Vlookup ՝ առանց կրկնօրինակների բոլոր համապատասխան արժեքները վերադարձնելու մեկ բջիջ

Եթե ​​ցանկանում եք վերադարձնել որոնման տվյալների հիման վրա բոլոր համապատասխանող արժեքները առանց կրկնօրինակների, ստորև ներկայացված բանաձևը կարող է օգնել ձեզ:

Խնդրում ենք պատճենել և տեղադրել հետեւյալ բանաձևը դատարկ բջիջում, այնուհետև սեղմել Ctrl + Shift + Մուտք ստեղները միասին `առաջին արդյունքը ստանալու համար, ապա պատճենեք այս բանաձևը` այլ բջիջներ լրացնելու համար, և դուք կստանաք բոլոր համապատասխան արժեքները առանց կեղծիքի, ինչպես ցույց է տրված ստորև նշված նկարը.

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

Նշում: Վերոնշյալ բանաձևում A2: A11 որոնման տիրույթն է, որը պարունակում է որոնման տվյալները, E2 որոնման արժեքն է, C2: C11 տվյալների տիրույթն է, որից ուզում եք վերադարձնել համապատասխան արժեքները ",,"բաժանարարն է` մի քանի գրառումներն առանձնացնելու համար:

Vlookup ՝ օգտագործողի կողմից սահմանված գործառույթով բազմաթիվ արժեքներ մեկ բջիջ վերադառնալու համար

Վերոնշյալ TEXTJOIN գործառույթը հասանելի է միայն Excel 2019-ի և Office 365-ի համար, եթե Excel- ի այլ ցածր տարբերակներ ունեք, այս խնդիրն ավարտելու համար պետք է օգտագործել որոշ կոդեր:

Vlookup ՝ բոլոր համապատասխան արժեքները մեկ խցում վերադարձնելու համար

1, Պահեք պահեք ALT + F11 ստեղները, և այն բացում է Microsoft Visual Basic հավելվածների համար պատուհան.

2: Սեղմեք Տեղադրել > Մոդուլներ, և տեղադրեք հետևյալ կոդը Մոդուլի պատուհան.

VBA կոդ. 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, Դրանից հետո պահեք և փակեք այս կոդը, վերադարձեք աշխատանքային թերթ և մուտքագրեք այս բանաձևը. =CONCATENATEIF($A$2:$A$11, E2, $C$2:$C$11, ", ") որոշակի դատարկ վանդակի մեջ, որտեղ ցանկանում եք տեղադրել արդյունքը, այնուհետև քաշել լրացման բռնակը ներքև ՝ ստանալու համար անհրաժեշտ բոլոր համապատասխան արժեքները մեկ խցում, տես նկարի նկարը.

Նշում: Վերոնշյալ բանաձևում A2: A11 որոնման տիրույթն է, որը պարունակում է որոնման տվյալները, E2 որոնման արժեքն է, C2: C11 տվյալների տիրույթն է, որից ուզում եք վերադարձնել համապատասխան արժեքները ",,"բաժանարարն է` մի քանի գրառումներն առանձնացնելու համար:

Vlookup ՝ առանց կրկնօրինակների բոլոր համապատասխան արժեքները վերադարձնելու մեկ բջիջ

Վերադարձված համապատասխանող արժեքների կրկնօրինակներն անտեսելու համար խնդրում ենք վարվել ստորև ներկայացված կոդի հետ:

1, Պահեք պահեք Alt + F11 բացել ստեղները Microsoft Visual Basic հավելվածների համար պատուհան.

2: Սեղմեք Տեղադրել > Մոդուլներ, և տեղադրեք հետևյալ կոդը Մոդուլի պատուհան.

VBA կոդ. Vlookup և մի քանի համապատասխան եզակի արժեքներ վերադարձնել մեկ բջիջ

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, Կոդը տեղադրելուց հետո կտտացրեք Գործիքներ > Սայլակ բացվածում Microsoft Visual Basic հավելվածների համար պատուհանից, այնուհետև դուրս եկավ դուրս Հղումներ - VBAP նախագիծ երկխոսության տուփ, ստուգեք Microsoft Scripting Runtime տարբերակը Հասանելի հղումներ ցուցակի տուփը, տե՛ս սքրինշոթերը.

4. Այնուհետեւ կտտացրեք OK երկխոսության տուփը փակելու, կոդի պատուհանը պահելու և փակելու համար, վերադառնալ աշխատանքային թերթ և մուտքագրել այս բանաձևը. =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:

Նշում: Վերոնշյալ բանաձևում A2: C11 տվյալների տիրույթն է, որը ցանկանում եք օգտագործել, E2 որոնման արժեքն է, համարը 3 վերադարձված արժեքները պարունակող սյունակի համարն է:

Vlookup ՝ մի քանի բջիջներ օգտակար հատկությամբ մեկ բջիջ վերադարձնելու համար

 Եթե ​​դուք ունեք մեր Excel- ի համար նախատեսված գործիքներԻր Ընդլայնված կոմբինատ տողեր առանձնահատկությունը, դուք կարող եք արագորեն միավորել կամ միավորել տողերը ՝ ելնելով նույն արժեքից, և կատարել որոշ հաշվարկներ, որքան ձեզ հարկավոր է:

Նշում:Սա կիրառելու համար Ընդլայնված կոմբինատ տողեր, նախ, դուք պետք է ներբեռնեք այն Excel- ի համար նախատեսված գործիքներ, ապա գործառույթը կիրառեք արագ և հեշտությամբ:

Տեղադրելուց հետո Excel- ի համար նախատեսված գործիքներխնդրում եմ արեք հետևյալը.

1, Ընտրեք տվյալների տիրույթը, որը ցանկանում եք համատեղել մեկ սյունակի տվյալներ `հիմնվելով մեկ այլ սյունակի վրա:

2: Սեղմեք Կուտոլս > Միաձուլում և պառակտում > Ընդլայնված կոմբինատ տողեր, տես նկարի նկարը.

3, Դուրս ցցված Ընդլայնված կոմբինատ տողեր երկխոսության տուփ:

  • Կտտացրեք ստեղնաշարի սյունակի անունը, որը պետք է համակցված լինի, և այնուհետև կտտացրեք Առաջնային բանալին
  • Դրանից հետո կտտացրեք մեկ այլ սյունակի վրա, որը ցանկանում եք համատեղել դրա տվյալները ՝ հիմնվելով ստեղնային սյունակի վրա, և կտտացրեք Միավորել ընտրել մեկ տարանջատիչ `համակցված տվյալներն առանձնացնելու համար:

4. Այնուհետեւ կտտացրեք OK կոճակը, և դուք կստանաք հետևյալ արդյունքները.

Ներբեռնեք և անվճար փորձեք Kutools- ը Excel- ի համար:


Ավելի հարաբերական հոդվածներ.

  • VLOOKUP գործառույթ ՝ մի քանի հիմնական և առաջադեմ օրինակներով
  • Excel- ում VLOOKUP գործառույթը Excel- ի օգտվողների մեծ մասի համար հզոր գործառույթ է, որն օգտագործվում է տվյալների տիրույթի ձախ մասում արժեք որոնելու և նույն շարքում համապատասխանեցված արժեք վերադարձնելու համար `ձեր նշած սյունակից: Այս ձեռնարկը խոսում է այն մասին, թե ինչպես օգտագործել VLOOKUP գործառույթը Excel- ի մի քանի հիմնական և առաջադեմ օրինակներով:
  • Vlookup և վերադարձնել մի քանի արժեքներ ուղղահայաց
  • Սովորաբար, առաջին համապատասխան արժեքը ստանալու համար կարող եք օգտագործել Vlookup գործառույթը, բայց, երբեմն, ցանկանում եք վերադարձնել բոլոր համապատասխան գրառումները `ելնելով որոշակի չափանիշի: Այս հոդվածում ես կխոսեմ այն ​​մասին, թե ինչպես vlookup- ը վերադառնալ և վերադարձնել բոլոր համապատասխան արժեքները ուղղահայաց, հորիզոնական կամ մեկ մեկ բջիջում:
  • Vlookup և վերադարձնել մի քանի արժեքներ իջնող ցուցակից
  • Excel- ում ինչպե՞ս կարող եք դիտել և մի քանի համապատասխան արժեքներ վերադարձնել ցուցակից, ինչը նշանակում է, որ բացվող ցուցակից մեկ կետ ընտրելու դեպքում դրա բոլոր հարաբերական արժեքները միանգամից ցուցադրվում են: Այս հոդվածը ես փուլ առ փուլ կներկայացնեմ լուծումը:

Գրասենյակի արտադրողականության լավագույն գործիքները

Հանրաճանաչ հատկություններ: Գտեք, ընդգծեք կամ նույնականացրեք կրկնօրինակները   |  Deleteնջել դատարկ շարքերը   |  Միավորել սյունակները կամ բջիջները՝ առանց տվյալների կորստի   |   Կլոր առանց բանաձևի ...
Super Փնտրել: Բազմաթիվ չափանիշների VLookup    Բազմակի արժեք VLookup  |   VLookup բազմաթիվ թերթերում   |   Fuzzy Փնտրել ....
Ընդլայնված բացվող ցուցակ: Արագ ստեղծեք բացվող ցուցակը   |  Կախված բացվող ցուցակ   |  Բազմակի ընտրություն Drop Down ցուցակ ....
Սյունակի կառավարիչ: Ավելացրեք որոշակի քանակությամբ սյունակներ  |  Տեղափոխել սյունակները  |  Փոխարկել թաքնված սյունակների տեսանելիության կարգավիճակը  |  Համեմատեք միջակայքերը և սյունակները ...
Առանձնահատկություններ: Ցանցի կենտրոնացում   |  Դիզայնի տեսք   |   Մեծ Formula Bar    Աշխատանքային գրքույկի և թերթիկների կառավարիչ   |  Ռեսուրսների գրադարան (Ավտոմատ տեքստ)   |  Ամսաթիվ ընտրող   |  Միավորել աշխատանքային թերթերը   |  Գաղտնագրել/գաղտնազերծել բջիջները    Ուղարկեք նամակներ ըստ ցանկի   |  Սուպեր զտիչ   |   Հատուկ զտիչ (զտել թավ/շեղ/շեղված...) ...
Լավագույն 15 գործիքների հավաքածու12 Տեքստ Գործիքներ (Ավելացրեք տեքստ, Հեռացնել նիշերը, ...)   |   50 + Աղյուսակ Տեսակներ (Գանտի աղյուսակը, ...)   |   40+ Գործնական Բանաձեւեր (Հաշվարկել տարիքը ՝ ելնելով ծննդյան տարեդարձից, ...)   |   19 միացում Գործիքներ (Տեղադրեք QR կոդ, Տեղադրեք նկար ուղուց, ...)   |   12 Փոխարկում Գործիքներ (Բառեր համարներ, Արտարժույթի փոխակերպումը, ...)   |   7 Միաձուլում և պառակտում Գործիքներ (Ընդլայնված կոմբինատ տողեր, Պառակտված բջիջներ, ...)   |   ... եւ ավելին

Լրացրեք ձեր Excel-ի հմտությունները Kutools-ի հետ Excel-ի համար և փորձեք արդյունավետությունը, ինչպես երբեք: Kutools-ը Excel-ի համար առաջարկում է ավելի քան 300 առաջադեմ առանձնահատկություններ՝ արտադրողականությունը բարձրացնելու և ժամանակ խնայելու համար:  Սեղմեք այստեղ՝ Ձեզ ամենաշատ անհրաժեշտ հատկանիշը ստանալու համար...

kte էջանիշը 201905


Office Tab- ը Tabbed ինտերֆեյսը բերում է Office, և ձեր աշխատանքը շատ ավելի դյուրին դարձրեք

  • Միացնել ներդիրներով խմբագրումը և ընթերցումը Word, Excel, PowerPoint- ով, Հրատարակիչ, Access, Visio և Project:
  • Բացեք և ստեղծեք բազմաթիվ փաստաթղթեր նույն պատուհանի նոր ներդիրներում, այլ ոչ թե նոր պատուհաններում:
  • Բարձրացնում է ձեր արտադրողականությունը 50%-ով և նվազեցնում մկնիկի հարյուրավոր սեղմումները ձեզ համար ամեն օր:
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