PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelAutomatiskt flytta formel en cell per dagAutomatiskt flytta formel en cell per dag
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2020-10-30 07:41
 

Hej,

Jag har en enkel formel som summerar ett värde per dag för de senaste 15 dagarna. Varje dags värde skrivs in i en cell. Låt säga =SUMMA(A1:A15). Nästa dag fylls värdet manuellt i A16. Jag skulle då med automatik vilja att formeln =SUMMA(A1:A15) ändras till =SUMMA(A2:A16). D.v.s. att den flyttas en cell till höger per dag.

Är det möjigt?

Tack på förhand!

Nytt inlägg
 2020-10-30 08:32
 

Du vill alltså ha de 15 "nedersta" värdena hela tiden?

Den här formeln säger vilken rad som har det sista ifyllda värdet:

=MAX(RAD(A:A)*(A:A<>""))

Och med hjälp av INDEX kan du hitta vilken cell det är:

=INDEX(A:A;MAX(RAD(A:A)*(A:A<>"")))

Sen kan du sätta in den i förskjutning, med 0 förskjutning, men utökad till -15 rader

=FÖRSKJUTNING(INDEX(A:A;MAX(RAD(A:A)*(A:A<>"")));0;0;-15)

Sätt en summa runt om

=SUMMA(FÖRSKJUTNING(INDEX(A:A;MAX(RAD(A:A)*(A:A<>"")));0;0;-15))

Om du har en äldre excel knaske du måste skriva

=produktSUMMA(FÖRSKJUTNING(INDEX(A:A;MAX(RAD(A:A)*(A:A<>"")));0;0;-15))

 

Ett annat alternativ är att använda FILTER och hitta de 15 Sista o-tomma cellerna. Men då måste du definitivt ha en ganska ny excel

=SUMMA(FILTER(A:A;RAD(A:A)>=STÖRSTA(RAD(A:A)*(A:A<>"");15)))

Nytt inlägg
 2020-10-30 10:19
 

 Tack!

Jäklar, jag skrev fel och jag tror att du misstänkte det när du läste min fråga.

Jag vill veta vilken kolumn som har det sista ifyllda värdet, inte rad.

Värdena fylls alltså i enligt =SUMMA(A1:O1)

Hur skulle din lösning se ut om man istället letar efter det senast ifyllda värdet i dessa kolumner.

Ledsen att jag skrev fel och tack på förhand!

Nytt inlägg
 2020-10-30 11:36
 
 Ändrad av anonymous  på 2020-10-30 12:42:37

Byt ut RAD mot KOLUMN och ersätt A:A med 1:1

=SUMMA(FILTER(1:1;KOLUMN(1:1)>=STÖRSTA(KOLUMN(1:1)*(1:1<>"");15)))

 

Om du använder förskjutning flyttad du dessuom -15 från rader till kolumner (dvs ett snäpp till höger)

=PRODUKTSUMMA(FÖRSKJUTNING(INDEX(1:1;MAX(KOLUMN(1:1)*(1:1<>"")));0;0;;-15))

 

Grunden för båda varianterna är:

Kolumn(1:1) ger kolumnnumret för alla celler i den första raden.

(1:1<>"") kollar varje cell på första raden. Om cellen är tom så blir parantesen FALSK (dvs 0) , annars SANN (1).

Kolumn(1:1)*(1:1<>"") tar alltså kolumnnumret * villkoret. Så alla tomma celler blir 0 och de icke-tomma blir = kolumnnumret

 

Nytt inlägg
 2020-10-31 07:57
 

Än en gång tack!

Men jag får det inte att fungera. 

När jag kopierar in formeln så får jag "Ogiltig funktion" till svar. Kan det bero på att jag använder "Excel för Mac" och version 16.16.27?

Nytt inlägg
 2020-11-02 11:12
 

Formeln med  PRODUKTSUMMA() använder ingea nya funktioner så dt borde funka. 

Det kan däremot bli knas när man kopierar en lång formel från ett forum. Testa att skriva in den manuellt. eller i alla fall kolla såatt det inte ligger några mellanslag eller andra osynliga specialtexter i formeln du kopierar.

Nytt inlägg
 2020-11-02 17:17
 

 Hej igen och tack!

Jag får det inte att fungera. Fortfarande oglitigt värde när jag knackar in det för manuellt.

Låt mig beskriva en gång till vad det är jag vill göra. Jag känner att jag inte var så pedagogisk senast ;-) Kanske har vi missförstått varandra.

Rad 1 fylls på med ett nytt värde per dag. Det nya värdet fylls på till höger, t.ex. idag fylls O1 med ett värde och imorgon fylls P1 med ett värde. Idag vill jag räkna ut summan i A1:O1 men imorgon vill jag automatiskt att formlen flyttar sig och räknar ut B1:P1. Jag vill helt enkelt räkna ut summan av de 15 senaste ifyllda värdena på rad 1.

Glasklart, eller hur? :-)

Nytt inlägg
 2020-11-03 12:09
 

Jag har ingen mac. Men om jag googlar så är det kanske så att dynamiska formler kräver 16.27. Men jag tycker att produktsumman borde funka ändå.

Hur ser formlerna ut hos dig? Är det på svenska med semikolon ;  som avgränsare.

 

Testa lite olika varianter. Exempel

=PRODUKTSUMMA((KOLUMN(1:1)>=STÖRSTA(KOLUMN(1:1)*(1:1<>"");15))*1:1)

=PRODUKTSUMMA(FÖRSKJUTNING(INDEX(1:1;1;MAX(KOLUMN(1:1)*(1:1<>"")));0;0;;-15))

 

eller, vad tusan. testa delar istället. Se till att det står något i alla cellerna A1:R1 (och inget mer)

 

Ger den här formeln svaret 18 (sista ifyllda kolumnnumret)?

=MAX(KOLUMN(1:1)*(1:1<>""))

Ger den här 4:a? (15:e sista kolumnen från slutet)

=STÖRSTA(KOLUMN(1:1)*(1:1<>"");15)

Ger det här svaret 15? 

=KOLUMNER(FÖRSKJUTNING(INDEX(1:1;1;MAX(KOLUMN(1:1)*(1:1<>"")));0;0;1;-15))

 

Blir det skillnad om du matar in det här som matrisformel? (dvs tryck Ctrl+Shift+Enter när du har skirvit färdigt formeln)

=SUMMA(FÖRSKJUTNING(INDEX(1:1;1;MAX(KOLUMN(1:1)*(1:1<>"")));0;0;1;-15))

Nytt inlägg
 2020-11-06 19:20
 

 JAG FÅR DET ATT FUNGERA! TACK!

Jag uppdaterade till version 16.43 (Excel för Mac) och då fungerade det. Så det verkar som om det var det som var problemet.

Men jag ett problem kvar. ;-)

Jag hämtar dessa värde från rad 11 i en annat blad i samma arbetsbok. Hur blir denna formel då: =PRODUKTSUMMA((KOLUMN(1:1)>=STÖRSTA(KOLUMN(1:1)*(1:1<>"");15))*1:1)

Blir KOLUMN(1:1) istället 'ANNAT_BLAD'!11:11) då?

Och blir *(1:1<>"");15))*1:1) istället *(11:11<>"");15))*11:11) eller ska även 'ANNAT_BLAD'! inkluderas där också.

Sorry, det här blir rörigt känner jag. Har du möjlighet så skriv gärna hela formeln för rad 11 på ANNAT_BLAD.

Hoppas du förstår. Jag är evinnerligt tacksam och snart har jag något som fungerar.

Nytt inlägg
 2020-11-09 08:26
 

11:11 Betyder alltid rad 11 på det här bladet. Så vill du titta i, och hämta värdet från, ett annat blad måste du ta med bladnamnet överallt

=SUMMA(FILTER(Blad2!11:11;KOLUMN(Blad2!11:11)>=STÖRSTA(KOLUMN(Blad2!11:11)*(Blad2!11:11<>"");15)))

=PRODUKTSUMMA(FÖRSKJUTNING(INDEX(Blad2!11:11;1;MAX(KOLUMN(Blad2!11:11)*(Blad2!11:11<>"")));0;0;1;-15))

Obs att resultatet från de här formlerna skiljer sig åt om du har tomma celler. Den första tar de 15 högraste IFYLLDA cellerna. Den nedre formeln tar 15 celler till vänster om den högraste. Inklusive tomma.

Om du googlar kan du hitta andra varianter. Exempelvis den här INDEX-INDEX

https://exceljet.net/formula/sum-last-n-columns

 

=SUMMA(INDEX(Blad2!11:11;1;MAX(KOLUMN(Blad2!11:11)*(Blad2!11:11<>""))-15+1):INDEX(Blad2!11:11;1;MAX(KOLUMN(Blad2!11:11)*(Blad2!11:11<>""))))

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelAutomatiskt flytta formel en cell per dagAutomatiskt flytta formel en cell per dag

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter