Excel képlet: Több munkalapon keressen értéket

Általános képlet

=COUNTIF(INDIRECT("'"&sheetname&"'!"&"range"),criteria)

Összegzés

Ha egy munkafüzetben több munkalapon szeretne keresni egy értéket és visszaadni a számlálást, használhatja a COUNTIF és az INDIRECT függvényeken alapuló képletet. Néhány előzetes beállítással ezt a megközelítést használhatja egy teljes munkafüzet keresésére egy adott értékre. A bemutatott példában a C5 képlete a következő:

=COUNTIF(INDIRECT("'"&B7&"'!"&"1:1048576"),$C$4)

Környezet - minta adatok

A munkafüzet összesen 4 munkalapot tartalmaz. Munkalap1 , Munkalap2 és Sheet3 egyenként 1000 véletlenszerűen első nevek néz ki:

Magyarázat

A B7: B9 tartomány tartalmazza azokat a lapneveket, amelyeket fel akarunk venni a keresésben. Ezek csak szöveges karakterláncok, és némi munkát kell végeznünk annak érdekében, hogy érvényes lap hivatkozásokként ismerjék el őket.

Belülről kifelé haladva ezt a kifejezést használják egy teljes lapos hivatkozás felépítéséhez:

"'"&B7&"'!"&"1:1048576"

Az egyes idézőjelek hozzáadódnak ahhoz, hogy a lapnevek szóközökkel legyenek engedélyezve, és a felkiáltójel a szintaxis a lapnevet tartalmazó tartományok számára. Az "1: 1048576" szöveg egy olyan tartomány, amely a munkalap minden sorát tartalmazza.

A B7 kiértékelése és az értékek összefűzése után a fenti kifejezés visszatér:

"'Sheet1'!1:1048576"

amely a „ref_text” argumentumként belemegy az INDIRECT függvénybe. Az INDIRECT kiértékeli ezt a szöveget, és normál hivatkozást ad vissza a Sheet1 minden cellájára . Ez a COUNTIF függvénybe kerül tartományként. A kritériumokat abszolút hivatkozásként adjuk meg a C4-re (lezárva, hogy a képlet lemásolható legyen a C oszlopban).

A COUNTIF ezután visszaadja az összes cella számát, amelynek értéke "mary", ebben az esetben 25.

Megjegyzés: A COUNTIF nem különbözteti meg a kis- és nagybetűket.

Tartalmaz vs. Egyenlő

Ha meg akarja számolni az összes cellát, amely tartalmazza az értéket a C4-ben, a C4-vel egyenlő összes sejt helyett, akkor helyettesítő karaktereket adhat hozzá az alábbi feltételekhez:

=COUNTIF(INDIRECT("'"&B7&"'!"&"1:1048576"),"*"&C4&"*")

Most a COUNTIF megszámolja a cellákat a "John" alszöveggel bárhol a cellában.

Teljesítmény

Általában nem jó gyakorlat olyan tartomány meghatározása, amely az összes munkalap cellát tartalmazza. Ez teljesítményproblémákat okozhat, mivel a tartomány millió és millió cellát tartalmaz. Ebben a példában a probléma összetett, mivel a képlet az INDIRECT függvényt használja, amely egy volatilis függvény. Az illékony függvények minden munkalap-változás után újraszámolnak, így a teljesítményre gyakorolt ​​hatás óriási lehet.

Ha lehetséges, korlátozza a tartományokat ésszerű méretre. Például, ha tudja, hogy az adatok nem jelennek meg az 1000. sor után, akkor csak az első 1000 sorban kereshet így:

=COUNTIF(INDIRECT("'"&B7&"'!"&"1:1000"),$C$4)

érdekes cikkek...