Excel-formel: Körantal i tabell -

Sammanfattning

Om du vill skapa ett löpande antal i en Excel-tabell kan du använda INDEX-funktionen med en strukturerad referens för att skapa ett expanderande intervall. I exemplet som visas är formeln i F5:

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

När du kopierar ner kolumnen returnerar denna formel ett löpande antal för varje färg i kolumnen Färg.

I vissa versioner av Excel är detta en matrisformel och måste anges med kontroll + shift + enter.

Förklaring

I grunden har denna formel använt INDEX för att skapa en expanderande referens så här:

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

På vänster sida av kolon (:) returnerar INDEX-funktionen en referens till den första cellen i kolumnkolumnen.

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

Detta fungerar eftersom INDEX-funktionen returnerar en referens till den första cellen, inte det verkliga värdet. På höger sida av kolon får vi en hänvisning till den aktuella raden i färgkolumnen så här:

(@Color) // current row of Color

Detta är standardstrukturerad referenssyntax för "denna rad". Förenat med kolon, dessa två referenser skapar ett intervall som expanderar när formeln kopieras ner i tabellen. Så vi byter dessa referenser till SUM-funktionen, vi har:

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

Var och en av uttrycken ovan genererar en matris med SANT / FALSKA värden, och det dubbla negativa (-) används för att konvertera dessa värden till 1s och 0s. Så i den sista raden slutar vi med:

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

Resten av formeln sammanfogar helt enkelt färgen från den aktuella raden till antalet som returneras av SUM:

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

Enkelt utökat sortiment?

Varför inte använda ett så enkelt expanderande sortiment?

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

Av någon anledning skadas denna typ av blandad referens i en Excel-tabell när rader läggs till. Att använda INDEX med en strukturerad referens löser problemet.

Intressanta artiklar...