Excel képlet: A cella sok mindent tartalmaz

Tartalomjegyzék

Általános képlet

=SUMPRODUCT(--ISNUMBER(SEARCH(things,A1)))=COUNTA(things)

Összegzés

Ha egy cellát tesztelni szeretne, hogy megnézze, tartalmaz-e egy listában minden elemet, akkor ezt megteheti egy olyan képlettel, amely a KERESÉS funkciót használja, az ISNUMBER, SUMPRODUCT és COUNTA függvények segítségével.

Kontextus

Tegyük fel, hogy rendelkezik a B5: B8 tartományban lévő szöveges karakterláncokkal, és meg szeretné tudni, hogy ezek a cellák tartalmazzák-e az összes szót egy másik tartományban, E5: E7.

Készíthet egy képletet, amely beágyazott IF utasításokat használ az egyes elemek ellenőrzéséhez, de ez nem skálázódik jól, ha sok dologra van szüksége. Valahányszor hozzáad egy szót a kereséshez, hozzá kell adnia egy másik beágyazott IF-t és módosítania kell a zárójeleket.

Megoldás

A megoldás az, hogy létrehozunk egy képletet, amely az összes egyezést megszámolja. Ha ez megvan, egyszerűen összehasonlítjuk ezt a számot a keresett elemek számával. Ha egyeznek, akkor tudjuk, hogy egy cella minden elemet tartalmaz.

A bemutatott példában az általunk használt képlet a következő:

=SUMPRODUCT(--ISNUMBER(SEARCH(things,B5)))=COUNTA(things)

Magyarázat

A kulcs ez a részlet:

ISNUMBER(SEARCH(things,B5)

Ez egy másik képleten alapul (itt részletesen elmagyarázzuk), amely egyszerűen ellenőrzi a cellát egyetlen alstring szempontjából. Ha a cella tartalmazza az alszöveget, a képlet IGAZ értéket ad vissza. Ha nem, akkor a képlet HAMIS.

Ha azonban ugyanannak a képletnek megadunk egy listát a dolgokról (ebben az esetben a "dolgok" nevű tartományt használjuk, E5: E7), akkor visszaadjuk az IGAZ / HAMIS értékek listáját, egyet a . Az eredmény egy tömb, amely így néz ki:

(IGAZ; IGAZ; IGAZ)

Ahol minden TRUE egy talált elemet képvisel, és minden FALSE egy olyan elemet jelent, amely nem található.

Kényszeríthetjük az IGAZ / HAMIS értékeket 1-es és 0-ra kettős negatív (-, más néven kettős unárium):

--ISNUMBER(SEARCH(things,B5))

amely egy ilyen tömböt eredményez:

(1; 1; 1)

Ezután ezt a tömböt a SUMPRODUCT segítségével dolgozzuk fel, amely egy teljes összeget fog kapni. Ha ez az összeg megegyezik a "dolgok" megnevezett tartományban lévő elemek számával, akkor tudjuk, hogy mindent megtaláltunk, és visszaadhatunk IGAZ értéket. Ennek módja a két szám közvetlen összehasonlítása. A „dolgokban” nem üres cellák számát kapjuk a COUNTA használatával:

=COUNTA(things)

Keményen kódolt listával

Nincs szükség arra, hogy a dolgok listájához tartományt használjon. Ha csak kevés dologra vágyik, használhat egy tömb formátumú listát, amelyet tömb konstansnak nevezünk. Például, ha csak a vörös, a kék és a zöld színeket keresi, használhatja a következőt ("piros", "kék", "zöld"):

=SUMPRODUCT(--ISNUMBER(SEARCH(("yellow","green","dog"),B5)))=COUNTA(things)

érdekes cikkek...