Jak získat pozici prvního dílčího zápasu

Anonim


V tomto článku se pokusíme získat pozici prvního dílčího zápasu v rozsahu.
Jak víme, že funkce MATCH vrací index nebo pozici prvního zápasu v rozsahu. Proto je zřejmé, že pomocí této funkce získáte pozici prvního zápasu v rozsahu. Protože podporuje operátory zástupných znaků, můžeme také použít MATCH k částečným shodám.

Jakmile získáme pozici první zápasové pozice, můžeme dělat různé věci. Stejně jako načítání této hodnoty nebo sousední nebo nesousedící hodnoty pomocí funkce INDEX, nebo vytváření dynamické funkce. Záleží na vaší potřebě a kreativitě.
Obecný vzorec pro první nalezený částečný MATCH
Pro řetězec pevného kódu:

= MATCH ("*str*",rozsah,0)

Odkaz na buňku:

= MATCH ("*" & buňka & "*", rozsah, 0)

Str: je to text nebo řetězec, který chcete částečně shodovat v rozsahu. Může to být cokoli, buňka nebo napevno řetězec.
Rozsah: je to rozsah, ve kterém budete hledat str.
0: Je to parametr pro přesnou shodu. Můžete také použít FALSE.

Všimněte si, že jsme používali * (astrisks) před a na konci řetězce str. Toto je operátor zástupných znaků pro přiřazení jakékoli hodnoty jakýkoli řetězec před a po něm …

Podívejme se na příklad.

Tady mám záznam Win, Loss a Tie. Chceme získat první pozici Win, Loss a Tie.

Pokud tedy naprogramuji pevný kód, vzorec pro nalezení první pozice částečné shody v každé buňce bude:

= MATCH ("*vyhrál*", A2: A10,0)
= MATCH ("*ztráta*", A2: A10,0)
= MATCH ("*remíza*", A2: A10,0)

= MATCH ("*" & C2 & "*", $ A $ 2: $ A $ 10,0)


Jak to funguje
Jednoduše používá funkce Excelu k částečným shodám. MATCH hledá libovolný řetězec, který obsahuje zadaný řetězec mezi * (hvězdičky) a vrací první nalezenou pozici.
Najděte pozici první dílčí shody v dosahu pomocí funkce FirstPartMatch VBA
Pokud zkopírujete níže kód vba v modulu vba v aplikaci Excel, můžete tuto funkci použít k získání první pozice částečné shody. Pro výše uvedený příklad stačí napsat tento vzorec:

= FirstPartMatch (C2, $ A $ 2: $ A $ 10)

Získáte pozici prvního zápasu. Takhle.

Jak to funguje

První argument je řetězec, ve kterém chcete hledat částečnou shodu.
Druhým argumentem je rozsah, ve kterém chcete získat pozici vašeho řetězce.

= FirstPartMatch (str, rozsah)

Chcete -li tento vzorec použít pro částečné párování, zkopírujte níže uvedený kód do modulu VBA.

Funkce FirstPartMatch (str As String, rng As Range) Dim tmp, position As Long position = 0 tmp = 0 For each cll In rng tmp = tmp + 1 If InStr (1, LCase (cll.Value2), LCase (str)) > 0 Pak pozice = tmp Ukončit pro Konec Pokud Další cll Pokud poloha Pak FirstPartMatch = pozice Else FirstPartMatch = "#NA" Konec Pokud Konec Funkce 


Částečná shoda rozlišující malá a velká písmena pro pozici

Výše uživatelem definovaná funkce pro hledání první částečné shody nebude rozlišovat velká a malá písmena. Pokud chcete, aby rozlišovala malá a velká písmena, odeberte Funkce Lcase z řádku 7.

Pak kód pro velká a malá písmena bude:

Funkce FirstPartMatchCASE (str jako řetězec, rng jako rozsah) Dim tmp, pozice jako dlouhá poloha = 0 tmp = 0 pro každý cll In rng tmp = tmp + 1 If InStr (1, cll.Value2, str)> 0 Then position = tmp Exit For End If Next cll If position Then FirstPartMatchCASE = position Else FirstPartMatchCASE = "#NA" End If End Function 


Můžete vidět, že „vyhrál“ a „tie“ v tomto případě nebyl nalezen. Protože není vyhráno ani nerozhodně malá písmena.

Takže jo, lidi, toto jsou způsoby, jak najít pozici prvního dílčího zápasu v Excelu. Řekl jsem vám, že můžete najít polohu částečné shody první ruky pomocí předdefinované funkce MATCH a pomocí uživatelem definované funkce shody. Pokud máte nějaké další nápady nebo dotazy, podělte se s námi zde v sekci komentáře níže.

Jak používat funkci MATCH v aplikaci Excel

Jak používat funkci INDEX v aplikaci Excel

Vlookup Top 5 hodnot s duplicitními hodnotami pomocí INDEX-MATCH v Excelu

Oblíbené články:

Funkce VLOOKUP v Excelu

COUNTIF v aplikaci Excel 2016

Jak používat funkci SUMIF v aplikaci Excel