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

Jak vrátit více hodnot vyhledávání v jedné buňce oddělené čárkami?

V aplikaci Excel můžeme použít funkci VLOOKUP k vrácení první shodné hodnoty z buněk tabulky, ale někdy musíme extrahovat všechny odpovídající hodnoty a poté je oddělit konkrétním oddělovačem, například čárkou, pomlčkou atd ... do jednoho buňka jako následující snímek obrazovky. Jak bychom mohli získat a vrátit více hodnot vyhledávání v jedné buňce oddělené čárkami v aplikaci Excel?

doc vrací více hodnot oddělených čárkami 1

Vraťte více hodnot vyhledávání v jedné buňce oddělené čárkami pomocí funkce definované uživatelem

Vraťte více hodnot vyhledávání v jedné buňce oddělené čárkami pomocí programu Kutools pro Excel


Vraťte více hodnot vyhledávání v jedné buňce oddělené čárkami pomocí funkce definované uživatelem

Normálně pro nás neexistuje žádný přímý způsob, jak extrahovat a vrátit více hodnot shody a oddělit je čárkou do jedné buňky, zde můžete vytvořit funkci definovanou uživatelem k vyřešení této úlohy, postupujte takto:

1. Podržte ALT + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.

2, klikněte Vložit > Modula vložte následující kód do Modul Okno.

Kód VBA: Vraťte více hodnot vyhledávání do jedné buňky oddělené čárkami

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. Poté uložte tento kód a zavřete okno modulu, vraťte se do svého listu a zadejte tento vzorec: = SingleCellExtract (D2, A2: B15,2, ",") do prázdné buňky, které chcete vrátit výsledek. A pak stiskněte vstoupit klíč k získání výsledku, viz screenshot:

doc vrací více hodnot oddělených čárkami 2

Poznámka: Ve výše uvedeném vzorci:

D2: označuje hodnoty buněk, které chcete vyhledat;

A2: B15: je rozsah dat, který chcete načíst data;

2: číslo 2 je číslo sloupce, který má vrátit odpovídající hodnotu;

,: čárka je oddělovač, kterým chcete oddělit více hodnot.

Můžete je podle potřeby změnit.


Vraťte více hodnot vyhledávání v jedné buňce oddělené čárkami pomocí programu Kutools pro Excel

Pokud máte Kutools pro Excel, tento úkol již nebude problémem. The Pokročilé kombinování řádků nástroj vám může pomoci kombinovat všechny relativní hodnoty založené na sloupci.

Kutools pro Excel : s více než 300 praktickými doplňky Excel, můžete si je vyzkoušet bez omezení do 30 dnů

Po instalaci Kutools pro Excel, postupujte následovně:

1. Vyberte rozsah dat, který chcete kombinovat všechny odpovídající hodnoty na základě sloupce.

2, klikněte Kutools > Sloučit a rozdělit > Pokročilé kombinování řádků, viz screenshot:

3. V Kombinujte řádky na základě sloupce V dialogovém okně klikněte na název sloupce, podle kterého chcete kombinovat, a poté klikněte na Primární klíč tlačítko, viz screenshot:

doc vrací více hodnot oddělených čárkami 4

4. Poté klikněte na název jiného sloupce, u kterého chcete zkombinovat odpovídající hodnoty, a klikněte na Kombinovat vyberte jeden oddělovač k oddělení kombinovaných hodnot, viz screenshot:

doc vrací více hodnot oddělených čárkami 5

5. Pak klikněte na tlačítko OK tlačítko, všechny odpovídající buňky se stejnou hodnotou byly sloučeny do jedné buňky, které jsou odděleny čárkou, viz screenshoty:

doc vrací více hodnot oddělených čárkami 6 2 doc vrací více hodnot oddělených čárkami 7

Kliknutím zobrazíte další podrobnosti o tomto nástroji Advanced Combine Rows…

Stáhněte si zdarma zkušební verzi Kutools pro Excel!


Ukázka: Vraťte více hodnot vyhledávání v jedné buňce oddělené čárkou pomocí programu Kutools pro Excel

Kutools pro Excel: s více než 300 praktickými doplňky aplikace Excel, můžete vyzkoušet bez omezení do 30 dnů. Stáhněte si a vyzkoušejte zdarma hned teď!

Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
officetab dno
Komentáře (17)
Hodnocení 5 z 5 · 2 hodnocení:
Tento komentář byl moderátorem webu minimalizován
Zatímco se chystám vložit a uložit modul, objeví se vyskakovací zpráva, že značná ztráta kontroly kompatibility funkcí
Tento komentář byl moderátorem webu minimalizován
Díky za tento příspěvek. Víte, jak bych postupoval při manipulaci se dvěma samostatnými celými čísly, které to vytváří? Řekněme například, že funkce '=SingleCellExtract' nyní vytváří (1 , 2). Existuje způsob, jak mít vedle něj buňku, která ano (1+.5 , 2+.5)?
Tento komentář byl moderátorem webu minimalizován
Funguje to, ale výrazně zpomaluje můj Excel! Nějaké tipy na zvýšení rychlosti?
Tento komentář byl moderátorem webu minimalizován
Tohle prostě nejde. Nemohl jsem to zprovoznit ve své vlastní aplikaci, takže jsem zkopíroval/vložil vba a vzorec a pokaždé to vrátilo chybu
Tento komentář byl moderátorem webu minimalizován
děkuji, nejprve se mi to podařilo zprovoznit bez zpomalení výkonu. Používám hodnoty spíše tento text, takže moje otázka zní, že chci vrátit všechny, kteří mají méně než řekněme 19 bodů v seznamu. Může na to fungovat extrakt jedné buňky nebo to musí být konkrétní hodnota?
Tento komentář byl moderátorem webu minimalizován
Příkaz VB se přeruší, když je rozsah delší než 154 řádků (tj. :B154)....
Tento komentář byl moderátorem webu minimalizován
Pokud zvětšíte velikost pole, objeví se chyba
Tento komentář byl moderátorem webu minimalizován
Když se 2 kritéria shodují, vrátí více vyhledávacích hodnot v jedné buňce oddělené čárkami
A2=B2 Pak výsledek z rozsahu pomocí "SingleCellExtract" - prosím.......
Tento komentář byl moderátorem webu minimalizován
Dobrý den,

kód VBA fungoval perfektně s mým listem, docela jasný a jednoduchý, nicméně jsem se snažil najít způsob, jak říct Excelu, aby vracel pouze jedinečné hodnoty. Bylo by to možné pomocí stejného kódu?
Hodnocení 5 z 5
Tento komentář byl moderátorem webu minimalizován
Dobrý den,

Chci přesný ověřovací kód pro více hodnot oddělených čárkou a mezerou pro každou hodnotu.

Příklad:
Lucy, Tom, Nicol, Akash, Apple

Pokud máte nějaké návrhy, hrajte znovu.
Hodnocení 4.5 z 5
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Manikanto
Chcete-li oddělit více hodnot čárkou a mezerou, stačí za čárkou přidat mezeru a změnit vzorec takto: =SingleCellExtract(D2,A2:B15,2,", ").
Zkuste to prosím, doufám, že vám to pomůže!
Tento komentář byl moderátorem webu minimalizován
Ahoj Skyyang,

Děkujeme za vaši reprízu!

Už jsem to zkoušel stejným způsobem, ale v hodnotě buňky je příkladem poslední jedna čárka (,) navíc.

Lucy, Tom, Nicol, Akash, Apple,

To nebude fungovat pro soubor Json, takže chci hodnoty oddělené čárkou a mezerou, jak je uvedeno níže.

Lucy, Tom, Nicol, Akash, Apple

Děkuji!
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Manikanto
V tomto případě můžete použít níže uvedenou uživatelem definovanou funkci:

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


Po vložení kódu použijte tento vzorec: =MultipleValues($A$2:$A$15,D2,$B$2:$B$15,", ")

Zkuste to prosím, doufám, že vám to pomůže!
Pokud máte ještě nějaký jiný problém, napište sem.
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-return-multiple-matching-1.png
Tento komentář byl moderátorem webu minimalizován
Ahoj Skyyang,

Už to funguje, děkuji za rychlou odpověď.

Je to pro mě velmi užitečné ještě jednou Děkuji za pomoc.

Pozdravy,
Manikanta.
Hodnocení 5 z 5
Tento komentář byl moderátorem webu minimalizován
Žádný sójový programátor, který není třeba používat pro funkci abajo en lugar devolverme esto

S-01-08-0017->Micro Post 1R, Černý, Nerezová ocel -Konec,->4;S-01-08-0057->Micro Post 2R, Černá, Nerezová ocel -Konec,->2

me devuelva los valores en líneas diferentes.
S-01-08-0017->Micro Post 1R, Černá, Nerezová ocel -Konec,->4
S-01-08-0057->Micro Post 2R, Černá, Nerezová ocel -Konec,->2

Funkce je:
Funkce SingleCellExtract(LookupValue As String, LookupRange As Range, ColumnNumber As Integer, Char As String)
'Aktualizovat Extendoffice
Dim I As Long
Dim xRet jako řetězec
Pro I = 1 To LookupRange.Columns(1).Cells.Count
If LookupRange.Cells(I, 1) = LookupValue Then
Pokud xRet = "" Pak
xRet = LookupRange.Cells(I, ColumnNumber) & Char
Jiný
xRet = xRet & "" & LookupRange.Cells(I, ColumnNumber) & Char
End If
End If
další
SingleCellExtract = Left(xRet, Len(xRet) - 1)
End Function
Tento komentář byl moderátorem webu minimalizován
Ahoj Yery,
Chtěli jste rozdělit buňku do více řádků na základě znaku středníku?
Pokud ano, může vám pomoci následující kód VBA:
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

Zkuste to prosím, doufám, že vám to pomůže!
Tento komentář byl moderátorem webu minimalizován
Kde / jak změním kód VBA, aby vytvořil "text", pokud nebude nalezena shoda - s výše uvedeným kódem, pokud nebude nalezena hodnota, "#VALUE!" se zobrazí v buňce. Toto není nejlepší pohled na sešit. Děkuju.
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL