startsida < företaget < organisera < datorer < tips
 
Matriskalkylering III

 
  Kalkylering
Kalkylering I
Kalkylering II
Kalkylering III
Kalkylering IV
Kalkylering V
Kalkylering VI
Kalkylering VII
Villkorsstyrd
kalkylering
Villkorsstyrd
formatering I
Villkorsstyrd
formatering II
Felhanterings-
kalkylering
Matriskalkylering I
Matriskalkylering II
Matriskalkylering III
Matriskalkylering IV
Matriskalkylering V
Datumkalkylering I
Datumkalkylering II
Datumkalkylering III
Datavalidering I
Datavalidering II
Cirkelreferenser
   
  Innehåll
expowera

 

Materialet publicerat med tillstånd från Dennis Wallentin.

Diagonal summering
Att summera diagonalt är i sig ganska enkelt. Med hjälp av en summaformel, t ex =SUMMA(A1;B2;C4), får man en diagonal summa. Nackdelen är ju förstås om man har några hundra celler man vill summera.

Här presenteras några tekniker som löser det smidigare. Utgångspunkten är tabellen nedan.

För att erhålla summan för intervallet B13:F9 används följande formel:

  • {=SUMMA(N(FÖRSKJUTNING(F9;RAD(1:5)-1;-1*RAD(1:5)+1)))}

Cellen F9 utgör här startpunkten och RAD(1:5) representerar själva matrisen (5 kolumner och 5 rader i FÖRSKJUTNING-formeln). Som framgår av formeln krävs en viss korrigering (1 / -1).

Andra lösningar för att summera intervallet B13:F9 är:

  • {=SUMMA(N(FÖRSKJUTNING(F9;RAD(INDIREKT
    ("1:5"))-1;-1*RAD(INDIREKT("1:5"))+1)))}
     
  • =PRODUKTSUMMA(N(FÖRSKJUTNING(F9;RAD
    (INDIREKT("1:5"))-1;-1*RAD(INDIREKT("1:5"))+1)))

För att erhålla summan för intervallet B9:F13 används följande formel:

  • {=SUMMA(N(FÖRSKJUTNING(B9;RAD(1:5)-1;RAD(1:5)-1)))}

Andra lösningar för att summera intervallet B9:F13 är:

  • {=SUMMA(N(INDIREKT(ADRESS(RAD(9:13);RAD(1:5)+1))))}
     
  • =PRODUKTSUMMA(N(INDIREKT(ADRESS(RAD(9:13);RAD(1:5)+1))))

Hitta sista raden & kolumnen
Behöver du ha reda på vilken rad eller kolumn som det sista värdet i en serie ligger i? Här presenteras en relativ kort lösning till denna fråga.

Tabellen nedan visar exemplet och visuellt kan vi avläsa att det är den 7:e raden det sista värdet finns i.


Lösningen består av följande matrisformel:

  • {=MAX(RAD(A1:A7)*(A1:A7<>""))}

För att erhålla kolumn istället för rad ersätts RAD-funktionen med KOLUMN- funktionen:

  • {=MAX(KOLUMN(A1:C1)*(A1:C1<>""))}

Vill vi istället hitta den första tomma raden i en kolumn kan följande matrisformel användas:

  • {=MIN(OM(A1:A7="";RAD(1:7)))}

Eller med formeln:

  • {=PASSA(SANT;ÄRTOM(A1:A7);0)}

Vilket ger rad 6 i exemplet.

Hantera matrisdata
Här presenteras en teknik för hantering av matrisdata. Exemplet visar hur man kontrollerar kontrollerar rad- och kolumnangivelser.

Nedan visas den ursprungliga tabellen.

Nu vill vi ändra på datamängden i det att den ska presenteras på följande sätt:

Hur får vi denna lösning månne? Jo, med hjälp av följande formel, där formeln i cellen C1 kopieras till de intill liggande cellerna:

  • =INDIREKT("A"&(2*RAD(A1)-(2-KOLUMN(A1))))

Hitta största värdet oavsett negativt/positivt
Antag att du vill ha reda på det största värdet i en större datamängd, oavsett om det är positivt eller negativt. Med dessa förutsättningar så är t ex -100 större än 50!

Tabellen nedan visar förutsättningarna för exemplet samt utfallet.

Lösningen ligger företrädesvis i att använda sig av ABS-funktionen, vilken ignorerar huruvida tal är positiva eller negativa. Nästa steg är att nyttja MAX-funktionen. Givet förståelsen för det så kan man därefter använda sig av PASSA- och INDEX-funktionerna. Vi får därmed följande tekniska lösning på problemet:

  • {=INDEX(A2:A6;PASSA(MAX(ABS(A2:A6));ABS(A2:A6);0))}

Vill vi inte använda oss av en matrisformel kan följande formel vara ett alternativ:

  • =OM(ABS(MIN(A1:A5))>MAX(A1:A5);MIN(A1:A5);MAX(A1:A5))

Är alla celler ifyllda?
I en kalkylmall e d kan det vara en god lösning att tvinga användarna att fylla i önskade uppgifter innan slutlig beräkning sker.

I bilden nedan visas två listor. I lista 1 är alla önskade celler ifyllda varför en beräkning sker. I lista 2 saknas det en uppgift varför den bakomliggande formeln visar felmeddelandet #Saknas!.

Lösningen består av en matrisformel, där formeln för Lista 1 är:

  • {=OM(ELLER(ÄRTOM(A2:A6));SAKNAS();SUMMA(A2:A6))}

För Lista 2 skiljer sig formeln, tekniskt sett, från den förstnämnda:

  • {=OM(OCH(ÄRTAL(B2:B6));SUMMA(B2:B6);SAKNAS())}
Upp
Senast uppdaterad: 2005-10-05 © Dennis Wallentin