Hur extraherar man alla partiella matchningar i Excel?
Om du vill extrahera alla matchningar som innehåller ett specifikt nyckelord från en kolumn och lista dem i en kolumn eller i en cell separerade med en avgränsare som visas nedan, hur skulle du kunna lösa denna uppgift i Excel?
Extrahera alla delmatchningar vertikalt med formeln
Extrahera alla partiella matchningar till en enda cell med användardefinierad funktion
Extrahera alla delmatchningar vertikalt med formeln
För att extrahera alla matchningar vertikalt i en kolumn baserad på en deltext kan följande matrisformel göra dig en tjänst:
Step1: Kopiera och klistra in formeln nedan i en tom cell där du vill placera resultatet:
Anmärkningar: I ovanstående formel, A2: A14 är cellerna kan innehålla nyckelordet som du vill returnera matchningar från, C2 innehåller nyckelordet, E1 är cellen ovanför formeln.
Step2: Tryck sedan på Ctrl + Skift + Enter tangenterna samtidigt för att få det första resultatet, och dra sedan fyllningshandtaget nedåt för att få alla matchningar tills felvärdet visas. Ta äntligen bort felvärdena, se skärmdump:
Extrahera alla partiella matchningar till en enda cell med användardefinierad funktion
Om du behöver extrahera alla matchningar i en enda cell och separerade med en specifik avgränsare, kanske det inte finns någon formel som kan lösa det. Här måste du använda nedanstående användardefinierade funktion:
Step1: Tryck Alt + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.
Step2: I Microsoft Visual Basic för applikationer fönstret klickar Insert > Modulerna, kopiera sedan följande kod till modulen.
VBA-kod: Extrahera alla partiella matchningar i en enda cell
Function ExtractPartMatch(rngInput As Range, rngSource As Range, Optional sDelimiter As String)
'Updateby ExtendOffice
Dim rng As Range
If sDelimiter = "" Then sDelimiter = ", "
For Each rng In rngSource
If InStr(1, rng.Value, rngInput.Value, vbTextCompare) > 0 Then ExtractPartMatch = ExtractPartMatch & sDelimiter & rng.Value
Next
If Len(ExtractPartMatch) > 0 Then ExtractPartMatch = Mid(ExtractPartMatch, 2, Len(ExtractPartMatch))
End Function
Step3: När du har klistrat in koden, gå tillbaka till kalkylbladet där du vill hitta resultatet och skriv sedan in den här formeln: =ExtractPartMatch(C2,$A$2:$A$14)och tryck sedan på ange -knappen för att få resultatet enligt nedanstående skärmdump:
Bästa kontorsproduktivitetsverktyg
Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid. Klicka här för att få den funktion du behöver mest...
Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare
- Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
- Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
- Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!