En familj av Microsoft-kalkylbladsprogram med verktyg för att analysera, kartlägga och kommunicera data.
(Ansvarsfriskrivning: Informationen har översatts med hjälp av ett automatiskt översättningsverktyg. Vi strävar efter att översättningarna ska vara korrekta, men de återspeglar inte alltid fullt ut innebörden, sammanhanget eller avsikten i det ursprungliga innehållet.)
Hej, Viktor Berglund
Välkommen till Microsofts Q&A-forum.
Tack för din fråga. Nedan följer en praktisk, formelbaserad lösning för att dela upp dina kolumner för In/Ut i två rena listor (Intäkter och Utgifter), utesluta tomma eller nollvärden, och göra allt dynamiskt så att det fortsätter fungera även om du senare lägger till många kostnadsställen (till exempel 20).
Jag utgår från följande upplägg, som i din bild:
- Rad 1 = Kostnadsställets namn (t.ex. Marknadsföring, Försäljning, Löner, Övrigt).
- Rad 2 = Etiketter “In” / “Ut”.
- Rad 3 = Belopp.
- Varje kostnadsställe upptar två kolumner, udda kolumn = In, jämn kolumn = Ut.
- Ditt block sträcker sig för närvarande från B till I (justera intervallet vid behov).
Om rubrikerna i rad 1 är sammanslagna över två kolumner är det bäst att dela upp dem och upprepa namnet i båda kolumnerna. Det gör formlerna enklare och mer robusta.
A) Skapa rena listor för Intäkter och Utgifter (utan tomma eller nollvärden)
Lista för Intäkter (hämtar endast “In”-kolumner)
Klistra in denna formel i första cellen i din intäktstabell (t.ex. B9).
=LET(
rng; $B$1:$I$3;
totalCols; KOLUMNER(rng);
oddCols; SEK VENS(1; totalCols; 1; 2);
names; INDEX(TAKE(rng;1); ; oddCols);
vals; INDEX(TAKE(rng;-1); ; oddCols);
FILTER( HSTACK(names; vals); (vals<>"") * (vals<>0) )
)
``
Vad den gör
- Väljer udda kolumner (In).
- Hämtar namn från rad 1 och belopp från rad 3.
- Tar bort rader med tomma värden eller nollor.
- Returnerar en tvåkolumnslista: Kostnadsställe | Intäkt.
Lista för Utgifter (hämtar endast “Ut”-kolumner)
Klistra in denna i din utgiftstabell (t.ex. E9).
=LET(
rng; $B$1:$I$3;
totalCols; KOLUMNER(rng);
evenCols; SEK VENS(1; totalCols; 2; 2);
names; INDEX(TAKE(rng;1); ; evenCols);
vals; INDEX(TAKE(rng;-1); ; evenCols);
FILTER( HSTACK(names; vals); (vals<>"") * (vals<>0) )
)
Summeringar och Resultat
Du kan summera direkt från listorna eller räkna direkt från källdatat.
Total intäkt direkt från originaltabellen
=LET(
rng; $B$1:$I$3;
totalCols; KOLUMNER(rng);
oddCols; SEK VENS(1; totalCols; 1; 2);
vals; INDEX(TAKE(rng;-1); ; oddCols);
SUMMA(FILTER(vals; (vals<>"") * (vals<>0)))
)
Totala utgifter direkt från originaltabellen
=LET(
rng; $B$1:$I$3;
totalCols; KOLUMNER(rng);
evenCols; SEK VENS(1; totalCols; 2; 2);
vals; INDEX(TAKE(rng;-1); ; evenCols);
SUMMA(FILTER(vals; (vals<>"") * (vals<>0)))
)
``
Resultat
- Resultat = Intäkter − Utgifter
B) Gör allt helt automatiskt för många kostnadsställen
Du behöver bara utöka intervallet rng.
Till exempel, om du lägger till kostnadsställen fram till kolumn AZ:
rng; $B$1:$AZ$3
Eftersom formlerna använder:
- KOLUMNER(rng) för att räkna hur brett området är
- SEKVENS(...; steg 2) för att dela upp In och Ut
kommer de automatiskt att inkludera alla nya kostnadsställen du lägger till, utan att du ändrar något mer.
Tips och viktiga noter
Sammanslagna rubriker
- Om rubrikerna i rad 1 är sammanslagna lagras texten bara i en cell. Dela upp dem och skriv namnet i båda kolumnerna för bästa resultat.
Negativa tal
- Om utgifter är negativa i källdatat kan du använda ABS(vals) i formeln för utgifter.
Behålla nollvärden
- Om du vill visa nollor, ta bort villkoret (vals<>0) i FILTER.
Språkanpassning
- Formlerna ovan är skrivna för svensk Excel (SUMMA, KOLUMNER, SEKVENS). Strukturen är densamma i alla språkversioner.
Alternativ med Power Query (mest robust)
Om kalkylbladet innehåller mycket formatering och sammanslagna celler:
Data > Från tabell/intervall
- Fyll ned kostnadsställen så att både In och Ut har namn
- Avpivotera kolumner
- Filtrera på In respektive Ut
- Ta bort tomma/0‑värden
- Stäng och läs in som två tabeller
Tabellerna uppdateras automatiskt när nya kostnadsställen läggs till.
Tack för att du tog dig tid att läsa igenom detta. Vi hoppas att informationen har varit till hjälp för dig.
Om svaret är till hjälp, klicka på ”Acceptera svar” och ge det en uppåtgående röst. Om du har ytterligare frågor om detta svar, klicka på ”Kommentera”.
Obs! Följ stegen i vår dokumentation för att aktivera e-postaviseringar om du vill få e-postaviseringar för denna tråd.