Excel formula: Število tekočih podatkov v tabeli -

Povzetek

Če želite ustvariti tekoče štetje v Excelovi tabeli, lahko s funkcijo INDEX s strukturirano referenco ustvarite razširjeni obseg. V prikazanem primeru je formula v F5:

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

Pri kopiranju v stolpec bo ta formula vrnila tekoče število za vsako barvo v stolpcu Barva.

V nekaterih različicah Excela je to matrična formula in jo je treba vnesti s tipko control + shift + enter.

Pojasnilo

V osnovi ta formula uporablja INDEX za ustvarjanje razširitvene reference, kot je ta:

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

Na levi strani debelega črevesa (:) funkcija INDEX vrne sklic na prvo celico v stolpcu stolpca.

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

To deluje, ker funkcija INDEX vrne sklic na prvo celico in ne na dejansko vrednost. Na desni strani debelega črevesa dobimo sklic na trenutno vrstico barvnega stolpca, kot je ta:

(@Color) // current row of Color

To je standardna strukturirana referenčna sintaksa za "to vrstico". Ta dva sklica skupaj s dvopičjem ustvarjata obseg, ki se širi, ko se formula kopira po tabeli. Torej, te reference zamenjamo v funkcijo SUM, imamo:

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

Vsak od zgornjih izrazov ustvari niz TRUE / FALSE vrednosti, dvojni negativ (-) pa se uporablja za pretvorbo teh vrednosti v 1s in 0s. Torej, v zadnji vrstici končamo z:

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

Preostali del formule preprosto poveže barvo iz trenutne vrstice s številom, ki ga vrne SUM:

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

Enostavno razširitev obsega?

Zakaj ne bi uporabili preprostega razširitvenega obsega, kot je ta?

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

Iz nekega razloga se ta vrsta mešanega sklica poškoduje v Excelovi tabeli, ko se dodajo vrstice. Uporaba INDEX-a s strukturiranim sklicem reši problem.

Zanimive Članki...