Om du kollar hjälpen för FÖRSKJUTNING så har den följande argument:
FÖRSKJUTNING(ref; rader; kolumner; [höjd]; [bredd])
Där "ref" , kolumnförskjutning och bredd inte behöver ändras: din startpunkt "Fyradiagram!$D$4" förskjutning=0 och bredden=1
Om du vill ha de sista 50 raderna så är det höjden. DVS 50, eller ANTALV(Fyradiagram!$D:$D)-1 om det finns förre än 50 värden
så [höjd] blir det minsta av de två värdena:
=MIN(50;ANTALV(Fyradiagram!$D:$D)-1)
radförskjutningen för du tänka likadant. Om det finns mindre än 50 värden så skall det vara 0. Annars ANTALV(Fyradiagram!$D:$D)-50.
Eftersom (ANTALV(Fyradiagram!$D:$D)-50) blir mindre än 0 om det finns mindre än 50 värden så kan du ta det största värdet av 0 eller antalet. dvs
=MAX(0;ANTALV(Fyradiagram!$D:$D)-50-1)
(Jag vet inte om den sista -1 behövs. men du hade det i din originalformel av en anledning (rubrik?))
och din slutformel något i stil med:
=FÖRSKJUTNING(Fyradiagram!$D$4;MAX(0;ANTALV(Fyradiagram!$D:$D)-50-1);0;MIN(50;ANTALV(Fyradiagram!$D:$D)-1);1)
Eller, så här om du vill köra INDEX istället
=INDEX(D:D;MAX(4;MAX((D:D<>"")*RAD(D:D))-49)):INDEX(D:D;MAX((D:D<>"")*RAD(D:D)))
elelr så här om du gillar LET()
=LET(sistaRad;MAX((D:D<>"")*RAD(D:D));INDEX(D:D;MAX(4;sistaRad-49)):INDEX(D:D;sistaRad))
Dvs du hittar den sist ifyllda raden med
=MAX((D:D<>"")*RAD(D:D))
Och startraden med:
=MAX(4;sistaRad-49)