Excel-formel: Kopiera värde från varje nionde rad -

Innehållsförteckning

Generisk formel

=OFFSET($B$5,(ROW(A1)*n)-1,0)

Sammanfattning

För att kopiera värden eller generera referenser med ett mönster som var tredje rad, var sjunde rad etc. kan du använda en formel baserad på OFFSET- och ROW-funktionerna. I exemplet som visas är formeln i D5:

=OFFSET($B$5,(ROW(D1)*3)-1,0)

Vilket kan kopieras ner i kolumn D till hämtningsvärde från kolumn B.

Förklaring

I Excel kan du inte enkelt kopiera formler som behöver hoppa över rader eller kolumner efter ett visst mönster, eftersom referenserna i formeln automatiskt ändras efter förhållandet mellan den ursprungliga källcellen och den nya målcellen. Men med lite arbete är det möjligt att konstruera formelreferenser som följer specifika mönster.

I det här fallet använder vi OFFSET-funktionen, som är utformad för att bygga referenser till andra celler, eller cellintervall, baserat på en given startpunkt eller ursprung.

I det visade exemplet är startcellen B5, tillhandahålls OFFSET som referensargument och fixeras som en absolut referens så att den inte ändras när formeln kopieras:

=OFFSET($B$5

För att beräkna rätt värde för raderargumentet använder vi en underformel baserad på ROW-funktionen:

(ROW(D1)*3)-1

Rad får den första cellen i samma kolumn och returnerar 1. Detta resultat multipliceras med n, vilket är 3 i detta exempel för att få 3.

När formeln kopieras ner i kolumnen ökas värdet med ROW med 1, vilket är det som skapar "n: t mönster".

Anledningen till att vi subtraherar 1 i båda fallen är att OFFSET-funktionen inte inkluderar referenscellen när argumentet rader tillämpas. Med andra ord returnerar förskjutning med en rad från A1 A2:

=OFFSET(A1,1,0) // returns A2

Att subtrahera 1 tar hänsyn till detta beteende.

Börjar vid 1

Om du vill börja kopiera på första raden och sedan följa varje nionde mönster kan du justera formeln så här:

=OFFSET($B$5,(ROW(A1)-1)*n,0)

Intressanta artiklar...