Hitta minsta värde som inte är noll
Att ta fram lägsta, minsta värde i ett område kan man enkelt göra med funktionen MIN eller MINSTA [SMALL]. Men om det finns nollor med i området och dessa ska ignoreras blir det lite pyssel. I exemplet nedan är det priser från en antal leverantörer och jag vill veta vilket lägsta priset är.
I och med att det finns några leverantörer med 0 (noll) i priskolumnen så är just dessa värden lägst, men jag vill alltså ignorera nollorna.
Vi rekommenderar dessa Excelkurser:
www.infocell.se – lärarledda kvalitetskurser i Excel
www.officekurs.se – oslagbar e-kurser i Excel & Office-paketet
Lösningen blir att göra ett villkor med en OM [IF] funktion på ett med avancerat vis än normalt.
Som villkor i OM [IF] kontrollerar jag samtliga priser på en gång och då att de inte är noll. Denna typ av villkor görs med en matrisfunktion för att fungerar och då avslutar man formeln med Ctrl + Shift + Enter. Har du Excel 365 så behöver du inte göra detta utan avslutar med Enter som vanligt.
Formeln blir följande:
=OM(B3:B14<>0;B3:B14)
=IF(B3:B14<>0;B3:B14)
Här kontrolleras alla celler i området B3:B14 om de är skiljt från noll. Dessa celler kommer utvärderas som FALSKT [FALSE] och resten således SANT [TRUE]. Som utfall anger jag endast argumentet för SANT [TRUE] för samma område.
Nu kan man utvärdera formeln genom att markera hela formeln och trycka F9 på tangentbordet.
I bilden ovan är formeln utvärderad och tydligt ser vi att cellerna som innehåller noll blir motsvarande FALSKT [FALSE] i matrisen. Nu är det endast det lägsta priset vi ska ha så där använder vi funktionen MIN för denna matris.
Tryck på Ångra-knappen eller Ctrl + Z för att återgå till normalt läge igen. Runt hela OM [IF] ska vi nu ha funktionen MIN. Hela formeln blir följande:
=MIN(OM(B3:B14<>0;B3:B14))
=MIN(IF(B3:B14<>0;B3:B14))
Har du Excel 365 så kan du bara trycka Enter annars måste du använda Ctrl + Shift +Enter. Resultatet visar du lägsta priset i området.
Leta rätt rad
Nästa steg blir att visa vilken leverantör som har det lägsta priset. Det gör vi med funktionerna INDEX och PASSA [MATCH]. Formeln blir följande:
=INDEX(A3:A14;PASSA(D3;B3:B14;0))
=INDEX(A3:A14;MATCH(D3;B3:B14;0))
Med INDEX anger vi vilket område som leverantörerna finns och sedan gäller det att hitta rätt position och det görs med PASSA [MATCH] som letar upp det lägsta värdet från cell D3.
Allt i en formel
När vi nu har tagit fram först lägsta pris och sedan vilken leverantör det är i två separata formler så kan vi nu sammanfoga dessa till en formel. Alltså baka in formeln som tar fram lägsta priset i nästa formel som tar fram motsvarande leverantör. Vilket ger följande formel:
=INDEX(A3:A14;PASSA(MIN(OM(B3:B14<>0;B3:B14));B3:B14;0))
=INDEX(A3:A14;MATCH(MIN(IF(B3:B14<>0;B3:B14));B3:B14;0))
Lösningen kan se väldigt krånglig och avancerad ut men bryter man ner dessa i detaljer som vi har gjort och sammanfogar dem i sista steget så blir det inte så komplicerat.
Läs mer om våra webbaserade Officekurser på www.officekurs.se