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

Hvordan returneres flere opslagsværdier i en kommaadskilt celle?

I Excel kan vi anvende VLOOKUP-funktionen til at returnere den første matchede værdi fra en tabelceller, men nogle gange er vi nødt til at udtrække alle matchende værdier og derefter adskilles af en bestemt afgrænser, såsom komma, bindestreg osv ... i en enkelt celle som følgende skærmbillede vist. Hvordan kunne vi få og returnere flere opslagsværdier i en kommasepareret celle i Excel?

doc returnerer flere værdier komma adskilt 1

Returner flere opslagsværdier i en kommaadskilt celle med brugerdefineret funktion

Returner flere opslagsværdier i en kommaadskilt celle med Kutools til Excel


Returner flere opslagsværdier i en kommaadskilt celle med brugerdefineret funktion

Normalt er der ingen direkte måde for os at udtrække og returnere de flere matchende værdier og adskilt med komma i en celle. Her kan du oprette en brugerdefineret funktion til at løse dette job, gør som følger:

1. Hold nede ALT + F11 nøgler til at åbne Microsoft Visual Basic til applikationer vindue.

2. Klik indsatte > Moduler, og indsæt følgende kode i Moduler Vindue.

VBA-kode: Returner flere opslagsværdier i en kommasepareret celle

Function SingleCellExtract(LookupValue As String, LookupRange As Range, ColumnNumber As Integer, Char As String)
'Updateby Extendoffice
    Dim I As Long
    Dim xRet As String
    For I = 1 To LookupRange.Columns(1).Cells.Count
        If LookupRange.Cells(I, 1) = LookupValue Then
            If xRet = "" Then
                xRet = LookupRange.Cells(I, ColumnNumber) & Char
            Else
                xRet = xRet & "" & LookupRange.Cells(I, ColumnNumber) & Char
            End If
        End If
    Next
    SingleCellExtract = Left(xRet, Len(xRet) - 1)
End Function

3. Gem derefter denne kode, og luk modulvinduet, gå tilbage til dit regneark, og indtast denne formel: = SingleCellExtract (D2, A2: B15,2, ",") i en tom celle, som du vil returnere resultatet. Og tryk derefter på Indtast nøgle for at få resultatet, se skærmbillede:

doc returnerer flere værdier komma adskilt 2

Bemærk: I ovenstående formel:

D2: angiver de celleværdier, du vil slå op;

A2: B15: er det dataområde, som du vil hente dataene;

2: tallet 2 er det kolonnenummer, som matchende værdi skal returneres;

,: kommaet er separatoren, som du vil adskille de flere værdier.

Du kan ændre dem til dit behov.


Returner flere opslagsværdier i en kommaadskilt celle med Kutools til Excel

Hvis du har Kutools til Excel, denne opgave vil ikke længere være et problem. Det Avancerede kombinere rækker hjælpeprogram kan hjælpe dig med at kombinere alle relative værdier baseret på en kolonne.

Kutools til Excel : med mere end 300 praktiske Excel-tilføjelsesprogrammer, gratis at prøve uden begrænsning på 30 dage

Efter installation Kutools til Excelskal du gøre som følger:

1. Vælg det dataområde, som du vil kombinere alle matchende værdier baseret på en kolonne.

2. Klik Kutools > Flet og del > Avancerede kombinere rækker, se skærmbillede:

3. I Kombiner rækker baseret på kolonne Klik på det kolonnenavn, du vil kombinere baseret på, og klik derefter på Primærnøgle knap, se skærmbillede:

doc returnerer flere værdier komma adskilt 4

4. Klik derefter på et andet kolonnenavn, som du vil kombinere deres matchede værdier, og klik på Kombiner for at vælge en separator for at adskille de kombinerede værdier, se skærmbillede:

doc returnerer flere værdier komma adskilt 5

5. Klik derefter på OK knap, er alle de tilsvarende celler med den samme værdi kombineret til en celle, der er adskilt med kommaet, se skærmbilleder:

doc returnerer flere værdier komma adskilt 6 2 doc returnerer flere værdier komma adskilt 7

Klik for at få flere oplysninger om dette Advanced Combine Rows-værktøj ...

Download og gratis prøveversion Kutools til Excel nu!


Demo: Returner flere opslagsværdier i en kommaadskilt celle med Kutools til Excel

Kutools til Excel: med mere end 300 praktiske Excel-tilføjelsesprogrammer, gratis at prøve uden begrænsning på 30 dage. Download og gratis prøveversion nu!

De bedste Office-produktivitetsværktøjer

Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%

  • Genbruge: Indsæt hurtigt komplekse formler, diagrammer og alt, hvad du har brugt før; Krypter celler med adgangskode Opret postliste og send e-mails ...
  • Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
  • Flet celler / rækker / kolonner uden at miste data; Split celler indhold; Kombiner duplikerede rækker / kolonner... Forhindre duplikerede celler; Sammenlign områder...
  • Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
  • Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
  • Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
  • Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
  • Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
  • Mere end 300 kraftfulde funktioner. Understøtter Office / Excel 2007-2021 og 365. Understøtter alle sprog. Nem implementering i din virksomhed eller organisation. Fuld funktioner 30-dages gratis prøveperiode. 60 dages pengene tilbage garanti.
kte-fane 201905

Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
officetab bund
Sorter kommentarer efter
Kommentarer (16)
Bedømt 5 ud af 5 · 2 vurderinger
Denne kommentar blev minimeret af moderatoren på webstedet
Mens jeg skal indsætte og gemme modulet, vises der en pop-up-meddelelse, der viser et betydeligt tab af funktionalitet, kompatibilitetskontrol
Denne kommentar blev minimeret af moderatoren på webstedet
Tak for dette indlæg. Ved du, hvordan jeg ville manipulere de to separate heltal, som dette skaber. Lad os f.eks. sige, at funktionen '=SingleCellExtract' nu producerer (1 , 2). Er der en måde at have en celle ved siden af, der gør (1+.5 , 2+.5)?
Denne kommentar blev minimeret af moderatoren på webstedet
Dette virker, men sænker min excel betydeligt! Nogle tips til at hjælpe med at få fart?
Denne kommentar blev minimeret af moderatoren på webstedet
Dette virker simpelthen ikke. Jeg kunne ikke få det til at virke i min egen applikation, så jeg kopierede/indsatte vba'en og formlen, og den returnerede en fejl hver gang
Denne kommentar blev minimeret af moderatoren på webstedet
tak, for det første lykkedes det mig at få dette til at fungere uden at nedsætte ydeevnen. Jeg bruger værdier i stedet for teksten, så mit spørgsmål er, at jeg vil bringe alle dem med mindre end f.eks. 19 point tilbage på en liste. Kan enkeltcelleekstraktet fungere til det, eller skal det være en bestemt værdi?
Denne kommentar blev minimeret af moderatoren på webstedet
VB-kommando afbrydes, når rækkevidden er længere end 154 rækker (dvs. :B154)....
Denne kommentar blev minimeret af moderatoren på webstedet
Fejl dukker op, hvis array-størrelsen øges
Denne kommentar blev minimeret af moderatoren på webstedet
Når 2 kriterier matcher, returnerer du flere opslagsværdier i én kommasepareret celle
A2=B2 Resultat fra område med "SingleCellExtract" - venligst.......
Denne kommentar blev minimeret af moderatoren på webstedet
Good Morning,

VBA-koden fungerede perfekt med mit regneark, ret klart og enkelt, men jeg prøvede at finde en måde at fortælle excel om kun at returnere de unikke værdier. Ville det være muligt at bruge den samme kode?
Bedømt 5 ud af 5
Denne kommentar blev minimeret af moderatoren på webstedet
Hej,

Jeg vil have nøjagtig valideringskode for flere værdier adskilt af komma og mellemrum for hver værdi.

Eksempel:
Lucy, Tom, Nicol, Akash, Apple

Gentag, hvis du har forslag.
Bedømt 4.5 ud af 5
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, Manikanta
For at adskille de flere værdier med et komma og mellemrum, skal du blot tilføje et mellemrum bag kommaet, ændre formlen som denne: =Enkeltcelleudtræk(D2,A2:B15,2,", ").
Prøv venligst, håber det kan hjælpe dig!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Skyyang,

Tak for din gentagelse!

Jeg prøvede allerede på samme måde, men i celleværdien er det sidste et ekstra komma (,) nedenfor, eksemplet.

Lucy, Tom, Nicol, Akash, Apple,

Dette vil ikke fungere for Json-filen, så jeg vil have værdier adskilt af komma og mellemrum som nedenfor.

Lucy, Tom, Nicol, Akash, Apple

Tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Manikanta
I dette tilfælde kan du anvende nedenstående brugerdefinerede funktion:

Function MultipleValues(work_range As Range, criteria As Variant, merge_range As Range, Optional Separator As String = ",") As Variant
Dim outcome As String
On Error Resume Next
If work_range.Count <> merge_range.Count Then
MultipleValues = CVErr(xlErrRef)
Exit Function
End If
For i = 1 To work_range.Count
If work_range.Cells(i).Value = criteria Then
outcome = outcome & Separator & merge_range.Cells(i).Value
End If
Next i
If outcome <> "" Then
outcome = VBA.Mid(outcome, VBA.Len(Separator) + 1)
End If
MultipleValues = outcome
Exit Function
End Function


Når du har indsat koden, skal du bruge denne formel: =MultipleValues($A$2:$A$15,D2,$B$2:$B$15,", ")

Prøv venligst, håber dette kan hjælpe dig!
Hvis du stadig har andre problemer, bedes du kommentere her.
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-return-multiple-matching-1.png
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Skyyang,

Dette virker nu, tak for dit hurtige svar.

Det er meget nyttigt for mig endnu en gang Tak for din hjælp.

Hilsen,
Manikanta.
Bedømt 5 ud af 5
Denne kommentar blev minimeret af moderatoren på webstedet
Ingen soja programleder pero necesito ayuda para que la función de abajo en lugar de devolverme esto

S-01-08-0017->Micro Stolpe 1R, Sort, Rustfri Stål -Ende,->4;S-01-08-0057->Micro Stolpe 2R, Sort, Rustfri Stål -Ende,->2

mig devuelva los valores en líneas diferentes.
S-01-08-0017->Mikrostolpe 1R, sort, rustfrit stål -Ende,->4
S-01-08-0057->Mikrostolpe 2R, sort, rustfrit stål -Ende,->2

Funktionen er:
Funktion SingleCellExtract(LookupValue As String, LookupRange As Range, ColumnNumber As Integer, Char As String)
'Opdatering af Extendoffice
Dim I Så længe
Dim xRet As String
For I = 1 Til LookupRange.Columns(1).Cells.Count
If LookupRange.Cells(I, 1) = LookupValue Then
Hvis xRet = "" Så
xRet = LookupRange.Cells(I, ColumnNumber) & Char
Else
xRet = xRet & "" & LookupRange.Cells(I, ColumnNumber) & Char
End If
End If
Næste
SingleCellExtract = Venstre(xRet, Len(xRet) - 1)
End Function
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Yery,
Mente du at opdele en celle i flere rækker baseret på semikolon?
Hvis ja, kan følgende VBA-kode hjælpe dig:
Sub SplitAll()
    Dim xRg As Range
    Dim xRg1 As Range
    Dim xCell As Range
    Dim I As Long
    Dim xAddress As String
    Dim xUpdate As Boolean
    Dim xRet As Variant
    On Error Resume Next
    xAddress = Application.ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select a range", "Kutools for Excel", xAddress, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
        If xRg.Columns.Count > 1 Then
            MsgBox "You can't select multiple columns", , "Kutools for Excel"
            Exit Sub
            End If
            Set xRg1 = Application.InputBox("Split to (single cell):", "Kutools for Excel", , , , , , 8)
            Set xRg1 = xRg1.Range("A1")
            If xRg1 Is Nothing Then Exit Sub
                xUpdate = Application.ScreenUpdating
                Application.ScreenUpdating = False
                For Each xCell In xRg
                    xRet = Split(xCell.Value, ";")
                    xRg1.Worksheet.Range(xRg1.Offset(I, 0), xRg1.Offset(I + UBound(xRet, 1), 0)) = Application.WorksheetFunction.Transpose(xRet)
                    I = I + UBound(xRet, 1) + 1
                Next
                Application.ScreenUpdating = xUpdate
            End Sub

Prøv venligst, håber det kan hjælpe dig!
Der er endnu ingen kommentarer her
Efterlad dine kommentarer
Sender som gæst
×
Bedøm dette indlæg:
0   Tegn
Foreslåede steder

Følg os

Copyright © 2009 - www.extendoffice.com. | Alle rettigheder forbeholdes. Drevet af ExtendOffice. | | Sitemap
Microsoft og Office-logoet er varemærker eller registrerede varemærker tilhørende Microsoft Corporation i USA og / eller andre lande.
Beskyttet af Sectigo SSL