Just nu i M3-nätverket
Jump to content

funktionen Om med Och


Martassen

Recommended Posts

Har gjort en formel i Excel som ska göra följande:

 

Om A1 innehåller ett tal som är mellan 1 och 100 så ska a1 returnera dess tal i B1. Är talet i A1 utanför intervallet så ska den returnerna "Värdet ligger utanför intervallet" i B1.

 

Har gjort detta med följande formel i B1:

=Om(och(A1>1;A1<100);A1;Värdet är utanför intervall”)

 

Fråga av ren nyfikenhet:

 

Kan man inte göra detta enbart med "OM" utan att blanda in funktionen "och"?

Är inte riktigt hundra på vad "och" gör.

Link to comment
Share on other sites

Fråga av ren nyfikenhet:

 

Kan man inte göra detta enbart med "OM" utan att blanda in funktionen "och"?

Är inte riktigt hundra på vad "och" gör.

 

Om man skriver ditt villkor matematiskt skulle det vara 1<=A1<=100, det vill säga X är större än eller lika med 1, men mindre än eller lika med 100.

I VBA skriver du "If A1>=1 AND A1<=100 Then...", och i Excel funktioner så är det precis som du konstruerat din formel (förutom möjligen att du glömt "lika med"). Anledningen är nog att man vill att syntaxen ska vara lik sig oavsett vilken formel man använder. Formeln "OCH(A1>=1;A1<=100)" översätts alltså till "A1>=1 OCH A1<=100".

 

Som en överkurs kan jag nämna att i SQL har man möjligheten att skriva "X Between 1 And 100", och det skulle ju gå att bygga in i Excel med en egendefinierad funktion, men funktionsanropet skulle ändå behöva bli typ "MELLAN(A1;1;100)".

 

Pär B

Link to comment
Share on other sites

Som tillägg till PerboMans svar så kan du skriva om det enbart med OM, men då krävs det två stycken nästlade satser

=OM(A1>1;OM(A1<100;A1;"För högt");"För lågt")

Link to comment
Share on other sites

Och för att komplicera det lite mer kan man lägga intervallen i en lista med tillbörligt svar i kolumn 2 i listan:

post-8996-0-15328800-1291796418_thumb.png

 

med en formel som

=LETARAD(D2;A1:B3;2;SANT)

där värdet man vill kontrollera finns i D1.

Returnerar

0 -> Utanför intervall

1-99 -> Lågt

100 - evigheten -> Högt

Link to comment
Share on other sites

Men är det annars inte vanligt att man kapslar om-funktioner? Tar det mer prestanda med fler "om" eller vad?

 

 

Om jag nu har följande om-formler:

 

Exempel1:

=OM(B2<15;"IG";OM(B2<25;"G";"VG"))

 

Exempel2:

=OM(B13>C13;"Olle är bäst";OM(C13>B13;"Anna är bäst";"Lika bra"))

 

Ska jag istället blanda in "och" i dessa Om-formler istället för att kapsla Om?

Link to comment
Share on other sites

Kostnaden för OM och OCH är marginell. Att kapsla eller inte handlar snarare om läsbarheten.

 

Om det blir långa jämförelser, med många termer, då kan man, som jag visat ovan, använda en tabell och LETARAD. Sökfunktioner är dock relativt kostsamma om man jämför med OM och OCH men oftast spelar det absolut ingen roll för prestanda vilket man väljer.

Link to comment
Share on other sites

Om jag nu har följande om-formler:

 

Exempel1:

=OM(B2<15;"IG";OM(B2<25;"G";"VG"))

 

Exempel2:

=OM(B13>C13;"Olle är bäst";OM(C13>B13;"Anna är bäst";"Lika bra"))

 

Ska jag istället blanda in "och" i dessa Om-formler istället för att kapsla Om?

 

 

Monshi har svarat om prestandan.

Jag tänkte mer på dina nästlade om-funktioner. I det andra exemplet du har finns det inget och-förhållande. Och använder man när en variabel eller cell måste uppfylla två villkor för att vara sann.

I det första kan man säga att "G" skulle kunna hittas med ett och (OCH(B2>=15;B2<25)), men eftersom du ska ge olika svar på vården under 15 och värden 25 och uppåt så tycker jag att det är lättare att nästla.

 

Hade det istället varit ett mätvärde där ett resultat utanför ett intervall är fel (oavsett om det är högre eller lägre) då tycker jag att OCH är bättre.

 

Som överkurs kan man också vända på ett OCH till ett ELLER:

=OM(OCH(B2>=15;B2<25);"RÄTT";"FEL") är samma sak som =OM(ELLER(B2<15;B2>=25);"FEL";"RÄTT").

 

/Pär B

Link to comment
Share on other sites

Ok.

 

Hur skulle jag kunna blanda in "Och" och "Eller" i följande formel?:

 

=OM(B2<15;"IG";OM(B2<25;"G";"VG"))

 

 

=OM(OCH(B2>=15;B2<25);"G";OM(B2<15;"IG";"VG"))

Då kollar du först ifall villkoret för G uppfylls (värdet i B2 är större än eller lika med 15 och mindre än 25).

Om B2 har ett annat värde får du kolla om värdet i B2 är mindre än 15 (IG), och om det inte är det så är det 25 eller större (VG).

 

ELLER är mycket knöligare:

=OM(ELLER(B2<15;B2>=25);OM(B2<15;"IG";"VG");"G")

 

Pär B

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...