Preskoči na glavno vsebino

Kako enostavno združiti besedilo na podlagi meril v Excelu?

Recimo, da imam stolpec številk ID, ki vsebuje nekaj dvojnikov in stolpec imen, zdaj pa želim združiti imena na podlagi edinstvenih številk ID, kot je prikazano na levi sliki zaslona, ​​da hitro združim besedilo na podlagi meril, kako bi lahko narediti v Excelu?

doc kombinira besedilo na podlagi meril 1

Združi besedilo na podlagi meril z uporabniško določeno funkcijo

Povežite besedilo na podlagi meril s programom Kutools za Excel


Če želite besedilo združiti z enoličnimi ID-številkami, lahko najprej izvlečete edinstvene vrednosti in nato ustvarite funkcijo, ki jo določi uporabnik, da združi imena na podlagi edinstvenega ID-ja.

1. Za primer vzemite naslednje podatke, najprej morate izvleči enolične številke ID, uporabite to formulo matrike: =IFERROR(INDEX($A$2:$A$15, MATCH(0,COUNTIF($D$1:D1, $A$2:$A$15), 0)),"")This vnesite to formulo v prazno celico, na primer D2, nato pritisnite Ctrl + Shift + Enter tipke skupaj, glej posnetek zaslona:

doc kombinira besedilo na podlagi meril 2

Nasvet: V zgornji formuli, A2: A15 je obseg podatkov seznama, iz katerega želite izvleči edinstvene vrednosti, D1 je prva celica stolpca, za katero želite prikazati rezultat pridobivanja.

2. Nato povlecite ročico za polnjenje navzdol, da izvlečete vse edinstvene vrednosti, dokler se ne prikažejo prazne slike, glejte sliko zaslona:

doc kombinira besedilo na podlagi meril 3

3. V tem koraku ustvarite Uporabniško določena funkcija za kombiniranje imen na podlagi edinstvenih ID številk pridržite ALT + F11 in odpre tipko Microsoft Visual Basic za aplikacije okno.

4. Kliknite Vstavi > Moduliin prilepite naslednjo kodo v Moduli Okno.

Koda VBA: združite besedilo na podlagi meril

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

5. Nato shranite in zaprite to kodo, se vrnite na svoj delovni list in vnesite to formulo v celico E2, = CONCATENATEIF ($ 2 $: $ 15 $, D2, $ B $ 2: $ 15 $, ",") , glej posnetek zaslona:

doc kombinira besedilo na podlagi meril 4

6. Nato povlecite ročico za polnjenje navzdol do celic, za katere želite uporabiti to formulo, in vsa ustrezna imena so združena na podlagi številk ID, glejte posnetek zaslona:

doc kombinira besedilo na podlagi meril 5

Nasvet:

1. V zgornji formuli: A2: A15 so izvirni podatki, na podlagi katerih želite združiti, D2 je edinstvena vrednost, ki ste jo izvlekli, in B2: B15 je stolpec z imeni, ki ga želite združiti.

2. Kot lahko vidite, sem združil vrednosti, ki so ločene z vejico, lahko uporabite katere koli druge znake tako, da spremenite vejico “,” formule po potrebi.


Če imate Kutools za Excel, Z njegovim Napredne kombinirane vrstice Pripomoček lahko besedilno osnovo hitro in priročno združite na podlagi meril.

Kutools za Excel : z več kot 300 priročnimi dodatki za Excel, ki jih lahko brezplačno preizkusite v 30 dneh.

Po namestitvi Kutools za Excel, naredite naslednje:

1. Na podlagi enega stolpca izberite obseg podatkov, ki ga želite združiti.

2. Kliknite Kutools > Spoji in razdeli > Napredne kombinirane vrstice, glej posnetek zaslona:

3. v Kombiniraj vrstice na podlagi stolpca v pogovornem oknu kliknite stolpec ID in nato kliknite Primarni ključ če želite, da je ta stolpec ključni stolpec, na katerem temeljijo vaši kombinirani podatki, glejte posnetek zaslona:

doc kombinira besedilo na podlagi meril 7

4. In nato kliknite Ime stolpec, v katerem želite združiti vrednosti, nato kliknite Združite in izberite eno ločilo za kombinirane podatke, glejte posnetek zaslona:

doc kombinira besedilo na podlagi meril 8

5. Po končanih nastavitvah kliknite OK za izhod iz pogovornega okna, podatki v stolpcu B pa so bili združeni na podlagi ključnega stolpca A. Oglejte si posnetek zaslona:

doc kombinira besedilo na podlagi meril 9

S to funkcijo bomo v najkrajšem možnem času rešili naslednjo težavo:

Kako združiti več vrstic v eno in sešteti dvojnike v Excelu?

Prenesite in brezplačno preizkusite Kutools za Excel zdaj!


Kutools za Excel: z več kot 300 priročnimi dodatki za Excel, brezplačno preizkusite brez omejitev v 30 dneh. Prenesite in brezplačno preskusite zdaj!

Najboljša pisarniška orodja za produktivnost

Priljubljene funkcije: Poiščite, označite ali identificirajte dvojnike   |  Izbriši prazne vrstice   |  Združite stolpce ali celice brez izgube podatkov   |   Krog brez formule ...
Super iskanje: Več kriterijev VLookup    Multiple Value VLookup  |   VLookup na več listih   |   Nejasno iskanje ....
Napredni spustni seznam: Hitro ustvarite spustni seznam   |  Odvisni spustni seznam   |  Večkrat izberite spustni seznam ....
Upravitelj stolpcev: Dodajte določeno število stolpcev  |  Premakni stolpce  |  Preklop stanja vidnosti skritih stolpcev  |  Primerjaj obsege in stolpce ...
Predstavljene funkcije: Mrežni fokus   |  Pogled oblikovanja   |   Velika vrstica formule    Upravitelj delovnih zvezkov in listov   |  Knjižnica virov (Samodejno besedilo)   |  Izbirnik datuma   |  Združite delovne liste   |  Šifriranje/dešifriranje celic    Pošljite e-pošto po seznamu   |  Super filter   |   Poseben filter (filter krepko/ležeče/prečrtano ...) ...
15 najboljših kompletov orodij12 Besedilo Orodja (dodajanje besedila, Odstrani znake,...)   |   50 + Graf Vrste (Gantt Chart,...)   |   40+ Praktično Formule (Izračunajte starost glede na rojstni dan,...)   |   19 vstavljanje Orodja (Vstavite kodo QR, Vstavi sliko s poti,...)   |   12 Pretvorba Orodja (Številke v besede, Pretvorba valut,...)   |   7 Spoji in razdeli Orodja (Napredne kombinirane vrstice, Razdeljene celice,...)   |   ... in več

Napolnite svoje Excelove spretnosti s Kutools za Excel in izkusite učinkovitost kot še nikoli prej. Kutools za Excel ponuja več kot 300 naprednih funkcij za povečanje produktivnosti in prihranek časa.  Kliknite tukaj, če želite pridobiti funkcijo, ki jo najbolj potrebujete...

zavihek kte 201905


Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
Comments (38)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Great function! Is there a way to maintain the format in the cell it's concatenating data from? i.e. $45.07, $555.34, $0.00, $0.25, -$12.25 I've figured out how to stack them with wrap text and CHAR(10) in place of "," but having trouble keeping the format. I will be using this for a mail merge in Word.
This comment was minimized by the moderator on the site
Hello, Laurie,If you want to keep the cell formatting when concatenating the data, you can apply the Advanced Combine Rows feature of Kutools for Excel, in the dialog box, after finishing the settings, you just need to check Use formatted values option, and all the data formatting will be kept as you need.
You can download Kutools for Excel and free trial 30-day.
This comment was minimized by the moderator on the site
Is there any way to add "and" instead of "," before the last data? (For example: D2355, D2273, D2397, D2600 and D2386)
This comment was minimized by the moderator on the site
Hi, Hossain,May be there is not a direct method for solving your problem, you can add another formula to convert the last comma to the text "and".=SUBSTITUTE(E2,","," and ",LEN(E2)-LEN(SUBSTITUTE(E2,",","")))
Please try, thank you!
This comment was minimized by the moderator on the site
It worked like a charm sir. Thank you so much.
This comment was minimized by the moderator on the site
Great function, exactly what I needed! Works like a charm
This comment was minimized by the moderator on the site
Hi,

Very helpful VBA solution. Thank you kindly! My question is: Is there a way to change the code or function for multiple criteria? Although the code works for me, I need it to show values corresponding to a timestamp-interval (>= timestamp A, <= timestamp B)


Thank you in advance. :)
This comment was minimized by the moderator on the site
Is there a way to assign this to a button? On large data ranges it takes a while, so ideally I only want it to start the concatenate process once I've finished doing everything else in the sheet. I tried adding a trigger myself but it stopped working completely
This comment was minimized by the moderator on the site
BTW i used the VBA solution
This comment was minimized by the moderator on the site
Extremely helpfull! After editing it for my sheet i have #VALUE! for some of the unique values.
I did a countif to see if it could be that there are too many names to concatenate. The two unique values that have the #VALUE! error have 13635 and 19810 results. Is there a way to overcome this?
This comment was minimized by the moderator on the site
How can I ignore blank cells? mine currently displays this:

";;;;;;;;;"

I'd like for the 1st, 3rd and last 3 semi colons not to there/show. TIA
This comment was minimized by the moderator on the site
Hello, Chantelle
When concatenating the cell values ignoring the blank cells, please apply the below User Defined Function:

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
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
If ConcatenateRange.Cells(i).Value <> "" Then
xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
End If
End If
Next i
If xResult <> "" Then
xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function

Please try it, hope it can help you!
This comment was minimized by the moderator on the site
thank you very much! This was so simple and helped a lot!!
This comment was minimized by the moderator on the site
Is it possible to replace the comma splitter with a line break, i.e. char(10)? Many thanks.
This comment was minimized by the moderator on the site
Hello, David,

To combine the cells with line break, the following User Defined Function may help you.

Function ConcatenateIf_LineBreak(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
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 & vbCrLf & ConcatenateRange.Cells(I).Value
End If
Next I
If xResult <> "" Then
xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf_LineBreak = xResult
Exit Function
End Function

After pasting this code, then apply this formula: =ConcatenateIf_LineBreak(A2:A13,F2,B2:B13,",").

After getting the results with this formula, you should click the Wrap Text to get the correct results you need.
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