Excel képlet: A cella a sok dolog egyikét tartalmazza -

Tartalomjegyzék

Általános képlet

=SUMPRODUCT(--ISNUMBER(SEARCH(things,A1)))>0

Összegzés

Egy cella teszteléséhez, hogy kiderül-e, hogy a sok karaktersorozat egyike van-e, használhat egy képletet, amely a SEARCH, ISNUMBER és SUMPRODUCT függvényeken alapul. A C5 képlete, lemásolva:

=SUMPRODUCT(--ISNUMBER(SEARCH(things,B5)))>0

ahol a dolgok a megnevezett tartomány E5: E9.

Magyarázat

Minden B5: B11 cellát tesztelni akarunk, hogy lássuk, tartalmaz-e a megnevezett tartománybeli dolgokban (E5: E9) szereplő húrokat . A C5-ben használt képlet, amelyet lemásoltunk, a következő:

=SUMPRODUCT(--ISNUMBER(SEARCH(things,B5)))>0

Ez a képlet egy olyan képleten alapul (itt elmagyarázva), amely ellenőrzi, hogy egy cellában egyetlen alstring van-e. Ha a cella tartalmazza az alszöveget, a képlet IGAZ értéket ad vissza. Ha nem, akkor a képlet HAMIS:

ISNUMBER(SEARCH(things,B5))

Ebben az esetben azonban a SEARCH számára megadunk egy karakterlánc-listát. Mivel a dolgokban 5 karakterlánc van , a SEARCH 5 eredményt ad vissza egy ilyen tömbben:

(1;#VALUE!;#VALUE!;#VALUE!;#VALUE!)

Amikor a SEARCH talál egy karakterláncot, visszaadja a karakterlánc helyét. Ha a SEARCH nem talál karakterláncot, akkor #VALUE! hiba. Mivel a B5 első szavaként a "sárga" jelenik meg, egy 1-et látunk. Mivel a többi karakterlánc nem található, a másik 4 elem hiba.

Ezt a tömböt közvetlenül az ISNUMBER függvény adja vissza. Az ISNUMBER ezután visszaadja az IGAZ / HAMIS értékek tömbjét:

(TRUE;FALSE;FALSE;FALSE;FALSE)

Ha csak egy IGAZ van a tömbben, akkor tudjuk, hogy egy cella legalább a keresett karakterláncokat tartalmazza. A TRUE ellenőrzésének legegyszerűbb módja az összes érték összeadása. Megtehetjük ezt a SUMPRODUCT segítségével, de először az IGAZ / HAMIS értékeket 1 és 0 értékekre kell kényszerítenünk kettős negatív (-) értékkel:

--ISNUMBER(SEARCH(things,B5))

Ez egy új tömböt eredményez, amely csak 1-et és 0-t tartalmaz:

(1;0;0;0;0)

közvetlenül a SUMPRODUCT-hez szállítva:

=SUMPRODUCT((1;0;0;0;0))

Csak egy tömb feldolgozásával a SUMPRODUCT hozzáadja a tömb elemeit, és eredményt ad vissza. Bármely nem nulla eredmény azt jelenti, hogy van "találatunk", ezért> 0 értéket adunk hozzá az IGAZ vagy HAMIS végeredmény kikényszerítéséhez:

=SUMPRODUCT((1;0;0;0;0))>0 // returns TRUE

Keményen kódolt listával

A keresendő karakterláncok listájához nem szükséges tartományt használni. Használhat egy tömbállandót is. Például a "piros", "kék" és "zöld" ellenőrzéséhez használjon egy következő képletet:

=SUMPRODUCT(--ISNUMBER(SEARCH(("red","blue","green"),B5)))>0

A hamis egyezések megelőzése

Ennek a megközelítésnek az egyik problémája, hogy hamis egyezéseket kaphat a hosszabb szavak belsejében megjelenő alsorokból. Például, ha megpróbálja megfelelni a "dr" szónak, akkor előfordulhat, hogy megtalálja az "Andrea", "ital", "száraz" stb. Elemeket is, mivel ezekben a szavakban a "dr" szerepel. Ez azért történik, mert a SEARCH automatikusan "tartalmaz" egyezést hajt végre.

A gyors feltörés érdekében helyet adhat a keresőszavak körül (pl. "Dr" vagy "dr"), hogy elkerülje a "dr" más szavak elkapását. De ez nem fog sikerülni, ha a "dr" jelenik meg először vagy utoljára egy cellában, vagy írásjelekkel jelenik meg.

Ha pontosabb megoldásra van szüksége, akkor az egyik lehetőség az, hogy először normalizálja a szöveget egy segítő oszlopban, ügyelve arra is, hogy egy vezető és záró helyet is hozzáadjon. Ezután a kapott szövegen használja az ezen az oldalon található képletet.

érdekes cikkek...