Екцел формула: Број покретања у табели -

Резиме

Да бисте креирали текући број у Екцел табели, можете да користите функцију ИНДЕКС са структурираном референцом да бисте креирали опсег који се шири. У приказаном примеру, формула у Ф5 је:

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

Када се копира у колону, ова формула ће вратити текући број за сваку боју у колони Боја.

У неким верзијама програма Екцел ово је формула низа и мора се унети са цонтрол + схифт + ентер.

Објашњење

У основи, ова формула користи ИНДЕКС за стварање проширене референце попут ове:

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

На левој страни дебелог црева (:), функција ИНДЕКС враћа референцу на прву ћелију у колони колоне.

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

То функционише јер функција ИНДЕКС враћа референцу на прву ћелију, а не стварну вредност. На десној страни дебелог црева добијамо референцу на тренутни ред колоне са бојама овако:

(@Color) // current row of Color

Ово је стандардна структурирана референтна синтакса за „овај ред“. Здружене са двотачком, ове две референце креирају опсег који се шири док се формула копира у табелу. Дакле, заменимо ове референце у функцију СУМ, имамо:

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

Сваки од горе наведених израза генерише низ вредности ТРУЕ / ФАЛСЕ, а двоструки негатив (-) се користи за претварање ових вредности у 1с и 0с. Дакле, у последњем реду завршавамо са:

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

Остатак формуле једноставно спаја боју из тренутног реда у број који је вратио СУМ:

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

Једноставно проширивање опсега?

Зашто не бисте користили једноставан опсег попут овог?

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

Из неког разлога, оваква мешовита референца постаје оштећена у Екцел табели док се додају редови. Коришћење ИНДЕКС-а са структурираном референцом решава проблем.

Занимљиви Чланци...