Формула на Excel: Текущ брой в таблица -

Обобщение

За да създадете текущ брой в таблица на Excel, можете да използвате функцията INDEX със структурирана препратка, за да създадете разширяващ се диапазон. В показания пример формулата във F5 е:

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

Когато се копира надолу в колоната, тази формула ще върне текущ брой за всеки цвят в колоната Цвят.

В някои версии на Excel това е формула на масив и трябва да се въведе с control + shift + enter.

Обяснение

В основата си тази формула използва INDEX за създаване на разширяваща се препратка като тази:

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

От лявата страна на дебелото черво (:), функцията INDEX връща препратка към първата клетка в колоната на колоната.

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

Това работи, защото функцията INDEX връща препратка към първата клетка, а не действителната стойност. От дясната страна на дебелото черво получаваме препратка към текущия ред на цветната колона по следния начин:

(@Color) // current row of Color

Това е стандартният структуриран референтен синтаксис за "този ред". Обединени с дебелото черво, тези две препратки създават диапазон, който се разширява, когато формулата се копира надолу по таблицата. И така, ние сменяме тези препратки във функцията SUM, имаме:

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

Всеки от изразите по-горе генерира масив от TRUE / FALSE стойности и двойният отрицателен (-) се използва за преобразуване на тези стойности в 1s и 0s. И така, на последния ред завършваме с:

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

Останалата част от формулата просто свързва цвета от текущия ред към броя, върнат от SUM:

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

Просто разширяване на обхвата?

Защо да не използвате обикновен разширяващ се диапазон като този?

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

По някаква причина този вид смесена препратка се поврежда в таблица на Excel при добавяне на редове. Използването на INDEX със структурирана справка решава проблема.

Интересни статии...