Just nu i M3-nätverket
Gå till innehåll

Hjälp med excel formel


Mattias Svensson

Rekommendera Poster

Nu får du testa och verifiera att detta verkligen fungerar. Jag kan inte gå i garant, jag tror det blivit rätt men som synes är formlerna hyfsat komplexa.

 

jag tror det räcker med om jag förklarar en grupp av formler, med den kunskapen kan du nog läsa ut skillnaderna som finns.

Tre formler blir det jag förklarar. (undras hur långt detta inlägg kommer bli?)

Den som räknar fram Typ11-områden ser ut som detta i Excel 2010

=OM([@BoendeSAMS]=[@PendlarTillSAMS];

OM(OCH([@AndelPendlareTotalt]>0,2;PRODUKTSUMMA(MAX(([@BoendeSAMS]=[boendeSAMS])*([PendlarTillSAMS]<>999)*([@BoendeSAMS]<>[PendlarTillSAMS])*[AndelPendlareTotalt]))<=0,09);

"ja";"nej")

;"")

 

Hur ska jag förklara denna....

Första OM-satsen

OM([@BoendeSAMS]=[@PendlarTillSAMS];

Kontrollerar helt enkelt om det är en kandidat för Typ11. Om så är fallet körs

OM(OCH([@AndelPendlareTotalt]>0,2

kontrollerar om antalet pendlare är större än 0,2 (20%). Gör en OCH över det villkoret samt det som följer

PRODUKTSUMMA(MAX(([@BoendeSAMS]=[boendeSAMS])*([PendlarTillSAMS]<>999)*([@BoendeSAMS]<>[PendlarTillSAMS])*[AndelPendlareTotalt]))<=0,09)

Detta är matrisdelen

 

Den tar ut max värdet hur vektorn som bildas av att man multiplicerar ett antal jämförelser, varje jämförelse skapar alltså en vektor med SANT/FALSKT värden som matematiskt motsvaras av 1/0

[namn] är hela kolumnen

[@namn] är aktuell rad.

 

så jämförelsen

([@BoendeSAMS]=[boendeSAMS]

exempelvis ger som svar 1 på varje rad som BoendeSAMS är samma som på aktuell rad.

 

Resultatet av

[@BoendeSAMS]=[boendeSAMS])*([PendlarTillSAMS]<>999)*([@BoendeSAMS]<>[PendlarTillSAMS])

Är att till vänster om skiljetecken har du en vektor med alla poster på BoendeSAMS som stämmer och till höger alla raders PendlarTillSAMS.

 

Kvar en vektor med en etta för alla rader där man pendlar ut från aktuell kommun.

Detta multipliceras med [AndelPendlareTotalt] och sedan tar MAX-värdet ur denna vektor och resultatet jämförs med <=0,09, dvs om max värdet ut till annan kolumn är mindre eller lika 9% så blir resultatet SANT.

 

ja, det var nästan hela den formeln. Får nog nöja mig med den till en början, kanske det räcker för att du ska klura ut resten med?

Formeln returnerar till slut

Tom sträng om raden inte är en kandidat för typ11

Nej om det var en kandidat men inte uppfyllde alla villkor

Ja om det är typ11

 

En notering igen. varje jämförelse är alltså en flyttalsjämförelse per rad. Om vi säger att du har 100 rader blir det ovan alltså, om hela formeln räknas cirka 1 000 operationer. För en rad. Dvs för hela kolumnen, om 100 rader, 100 000 operationer.

Kan bli mastigt att räkna om...

 

Allt solklart? Ska medge, det var en utmaning detta.

ja, en bok också

 

Kolla formlerna!

Kopia av SkripsModellExempel.xlsx

Länk till kommentar
Dela på andra webbplatser

  • Svars 51
  • Skapad
  • Senaste svar

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...