Excel képlet: Futási szám a táblázatban

Összegzés

Futószám létrehozásához egy Excel táblázatban az INDEX függvényt strukturált hivatkozással használhatja egy bővülő tartomány létrehozásához. A bemutatott példában az F5 képlete a következő:

=(@Color)&" - "&SUM(--(INDEX((Color),1):(@Color)=(@Color)))

Az oszlop lefelé másolása után ez a képlet a Szín oszlop minden egyes színének futási számát adja vissza.

Az Excel egyes verzióiban ez egy tömbképlet, amelyet a control + shift + enter billentyűkombinációval kell megadni.

Magyarázat

Lényegében ez a képlet az INDEX használatával hozza létre az ilyen kiterjesztő referenciát:

INDEX((Color),1):(@Color) // expanding range

A kettőspont (:) bal oldalán az INDEX függvény visszaadja az oszlop oszlopának első cellájára való hivatkozást.

INDEX((Color),1) // first cell in color

Ez azért működik, mert az INDEX függvény az első cellára hivatkozik, nem pedig a tényleges értékre. A kettőspont jobb oldalán a színoszlop aktuális sorára hivatkozást kapunk így:

(@Color) // current row of Color

Ez a szabványos strukturált hivatkozási szintaxis a "ennek a sornak". A kettősponttal összekötve ez a két hivatkozás létrehoz egy tartományt, amely kibővül, amikor a képletet lefelé másolják a táblázatban. Tehát ezeket a hivatkozásokat felcseréljük a SUM függvényre:

SUM(--(B5:B5=(@Color))) // first row SUM(--(B5:B11=(@Color))) // last row

A fenti kifejezések mindegyike TRUE / FALSE értékek tömbjét generálja, és a kettős negatív (-) felhasználásával ezeket az értékeket 1s és 0s értékekké alakítják. Tehát az utolsó sorban:

SUM((0;0;0;1;0;0;0;0;1;0;1)) // returns 3

A képlet többi része egyszerűen összefűzi az aktuális sor színét a SUM által visszaadott számlálással:

=(@Color)&" - "&3 ="Gold"&" - "&3 ="Gold - 3"

Egyszerű bővülő tartomány?

Miért ne használna ilyen egyszerű bővülő tartományt?

SUM(--($B$5:B5=(@Color)))

Valamilyen oknál fogva ez a fajta vegyes hivatkozás sorok hozzáadásával megsérül egy Excel táblázatban. Az INDEX használata strukturált referenciával megoldja a problémát.

érdekes cikkek...