Visa minsta värde, förutom nollvärden
I ett anbudsförfarande vill vi hitta det längsta, förmånligaste anbudet. Samtidigt vill vi inte ha med de anbud som inte uppfyller villkoren och därmed ej är giltiga.
Genom att använda funktionen MIN [MIN] går det att hitta det lägsta värdet i ett område. Men i detta exempel blir det problem, då inte alla anbud är giltiga och därmed resulterar i nollvärden. Funktionen MIN kommer då att ”träffa” nollvärdena, vilket blir fel i detta fall.
Vi rekommenderar dessa Excelkurser:
www.infocell.se – lärarledda kvalitetskurser i Excel
www.officekurs.se – oslagbar e-kurser i Excel & Office-paketet
Detta går bland annat att lösa med funktionen MINSTA [SMALL].
Med funktionen MINSTA [SMALL] går det att välja om det är det allra minsta värdet som ska hämtas, det näst minsta eller tredje minsta värdet och så vidare.
Men vi har ett problem till. I detta exempel finns det flera nollvärden, så vi behöver även räkna ut hur många anbud som inte är giltiga och som därmed inte är intressanta.
Med funktionen ANTAL.OM [COUNTIF] kan vi räkna antalet värden som uppfyller ett villkor.
Antal värden som är noll
Vi börjar med att räkna ut en sak intaget, för att senare sätta ihop allt till en enda formel.
=ANTAL.OM($B$4:$H$4;0)
=COUNTIF($B$4:$H$4,0)
I funktionen ANTAL.OM [COUNTIF] anger vi först området som ska undersökas. Vi använder $-tecken för att ”låsa” området, så inte området flyttar sig, ifall vi vill kopiera formeln till fler celler bredvid.
Som villkor anger vi sedan 0 (noll), för att hitta hur många nollvärden det finns i det angivna området.
Positionen för det minsta värdet
Men om vi använder funktionen MINSTA(cellområde;position) [SMALL] och fyller i en trea för vilket värde/position som ska hämtas, kommer det tredje mista värdet i området hämtas och efter som det är tre nollor kommer en av de tre nollorna returernas, så vi behöver addera en 1 (etta) för att hämta det fjärde minsta värdet, i det angivna området.
Så formeln blir:
=ANTAL.OM($B$4:$H$4;0)+1
=COUNTIF($B$4:$H$4,0)+1
Minsta värdet
Nu kan vi ta och lägga in uträkningen, för positionen av det minsta värde vi vill hämta, i funktionen MINSTA [SMALL].
Området/matrisen är samma som tidigare och i fältet för position N [K], använder vi vår tidigare framtagna formel.
Tillsammans blir då formeln:
=MINSTA($B$4:$H$4;ANTAL.OM($B$4:$H$4;0)+1)
=SMALL($B$4:$H$4,COUNTIF($B$4:$H$4,0)+1)
Flera värden som är lika?
Men det kan ju hända att flera anbud har samma låga pris?
Det går att lösa genom att lägga till en OM [IF] formel, som visar om så är fallet.
Vi testar om beloppet i cellen ovanför är lika med resultatet av vår tidigare formel och i så fall hämtas det värdet, annars visas bara ett – streck.
=OM(B4=MINSTA($B$4:$F$4;ANTAL.OM($B$4:$F$4;0)+1);B4;”-”)
=IF(B4=SMALL($B$4:$F$4,COUNTIF($B$4:$F$4,0)+1),B4,”-”)
Sedan är det bara att hoppas att det inte är anbudet med det lägsta priset som vinner, utan den som har de bästa villkoren och därmed är det förmånligaste anbudet som vinner upphandlingen.
Fler lösningar
Problemet att hitta det minsta värdet förutom noll i ett område, går även att lösa på andra sätt.
Det går att använda villkor med funktionen OM [IF] tillsammans med funktionen MIN [MIN]:
=MIN(OM($B$4:$H$4<>0;$B$4:$H$4))
=MIN(IF($B$4:$H$4<>0,$B$4:$H$4))
Denna formel är en matrisformel och måste avslutas med CTRL + SHIFT + ENTER. Har du Excel för Microsoft 365 så går det att avsluta med ENTER som vanligt.
Det går också att använda den nya funktionen MINIFS [MINIFS] som kom i Excel 2019:
=MINIFS($B$4:$H$4;$B$4:$H$4;”<>”&0)
=MINIFS($B$4:$H$4,$B$4:$H$4,”<>”&0)
I övningsfilen med facit (finns längre upp i tipset) ser du alla tre formellösningar.
Läs mer om våra e-kurser på www.officekurs.se.