Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

Numbers: Funktionen - SUMMA.OM

Tråden skapades och har fått 57 svar. Det senaste inlägget skrevs .
  • Medlem
  • International user
  • 2011-05-16 13:10

Håller på att sätta ihop en liten budgetkalkyl och behöver använda mig av funktionen SUMMA.OM i Numbers. Förutsättningarna är enligt följande:

Jag har ett numreiskt värde i cell B9 och ett numreiskt värde i cell B10. Jag vill få värdet på B9 att visas i cell B18 endast/OM värdet i B10 är lika med eller överstiger värdet i B9.
Hoppas det inte blev för krångligt.

Skriver ut det i siffror så kanske det ser enklare ut.
B9: 4000
B10: 7000

B18: Ska visa 4000 om B10 >= B9 (vilket det är i detta fall).

Funktionen SUMMA.OM borde lösa mitt problem och ser ut enligt följande:
=SUMMA.OM(test-värden;villkor;sum-värden)

I mitt fall borde jag då skriva:
=SUMMA.OM(B10;">=B9";B9)

Dock vill inte funktionen ta villkoret ">=B9" utan jag misstänker att det endast kan ta en konstant siffra. Detta hjälper ju inte mig då jag vill att resultatet ska va beroende av värdet i B9 och B10 (ej konstanta varje gång).

Någon som har en bra idé på hur detta sak lösas?

Nu var det länge sen jag lattjade i Excel, och Numbers har jag aldrig provat. Men varför SUMMA.OM? Hade det inte räckt med bara OM? För du ska väl inte summera något?

  • Medlem
  • International user
  • 2011-05-16 13:26
Ursprungligen av Capeman:

Nu var det länge sen jag lattjade i Excel, och Numbers har jag aldrig provat. Men varför SUMMA.OM? Hade det inte räckt med bara OM? För du ska väl inte summera något?

Tack så väldigt mycket!
Har suttit med detta sen igår kväll om kliat mig i huvudet..

Du hade helt rätt i det du skrev, givetvis räcker det med OM.

Funktionen blev enligt följande:

=OM(B10>=B9;B9;"-")

alltså (generella funktionen)

=OM(om-uttryck;om-sant;om-falskt)

Tack!

Skönt! Har som sagt aldrig arbetat i Numbers, men jag förutsatte att SUMMA.OM och OM fungerade ungefär likadant som i Excel.

  • Medlem
  • International user
  • 2011-05-17 18:53

Nu dök ännu ett problem upp som även tagits upp i följande tråd men tyvärr gavs inget svar där:
http://www.99.se/apple-programvara/268488-behover-hjalp-med-funktioner-syntax-i-numbers.html

Först tänkte jag fråga en relativt grundläggande fråga; kan man infoga fler än en funktion i en och samma cell?

Förutsättningarna är nämligen att jag har en cell som har en hyfsat komplicerad =OM funktion. Dock kan resultatet av den rendera i ett negativt tal. Jag vill se till så att resultatet av denna =OM funktion ger ett positivt tal om det större eller lika med noll men att det ger ett resultat på noll om det är mindre än noll, dvs. negativt.

Jag misstänker att jag inte kan integrera denna funktion i den redan befintliga =OM funktionen utan att jag måste lägga in en till funktion i samma cell, dock är jag osäker på om detta går och i så fall hur?

Någon idé?

  • Medlem
  • International user
  • 2011-05-17 19:26

Tydligen kan man nästa upp till 7 olika OM funktioner i en och samma cell dock får jag fram ett felmeddelande om att "formeln inte kan ha en referens till sin egen cell".

Det jag försökte göra var endast att lägga till en OM funktion framför min befintliga OM funktion som såg ut enligt följande:
=OM(F14<0;0)

F14 i detta fall är den cell där resultatet ges i grundfunktionen. Allt jag vill göra är att se till så att resultatet kommer ut som positivt om det är positivt och att det kommer ut som noll om det är negativt, simple as that..

Mer läsning:
http://www.xldennis.com/villkor.htm#N%E4stlade

Du kan köra flera OM i samma cell..

Hur ser cellen ut just nu?

  • Medlem
  • International user
  • 2011-05-17 19:42

=(OM(F12<=3033,33;F12*0,2-152,5;3033,33*0,2+(F12-3033,33)*0,41-152,5))

Resultatet ges i cell F14 och det är alltså där jag vill att resultatet ska ges om det är positivt och resultatet ska bli noll om det är negativt.

Saken är ju den att eftersom jag har värdet -152,5 i formeln så kan produkten av hela ekvationen bli negativ om värdet för F12 är så litet att det efter multiplikationen ger ett resultat mindre än just 152,5.

Här är ett exempel på lösning med nästlade villkorssatser:

=(OM(F12<=3033,33;OM(F12*0,2-152,5<0;0;F12*0,2-152,5);OM(3033,33*0,2+(F12-3033,33)*0,41-152,5<0;0;3033,33*0,2+(F12-3033,33)*0,41-152,5)))

  • Medlem
  • International user
  • 2011-05-17 20:16
Ursprungligen av M. Sundbom:

Här är ett exempel på lösning med nästlade villkorssatser:

=(OM(F12<=3033,33;OM(F12*0,2-152,5<0;0;F12*0,2-152,5);OM(3033,33*0,2+(F12-3033,33)*0,41-152,5<0;0;3033,33*0,2+(F12-3033,33)*0,41-152,5)))

Funkade alldeles utmärkt! Tack för det!
Jag tolkar det som att programmet testar en OM funktion i taget, om den ena inte stämmer går den vidare och testar nästa tills den finner en som funkar. Med andra ord är det viktigt att placera ekvationerna och OM funktionerna i rätt ordning, stämmer detta?

Vidare tokar jag din konstruktion som att du gjort OM funktioner som är beroende av varandra. Lite svårt att förklara hur jag tänker men jag ser det som att själv grundpelaren i formeln är det förstnämnda (OM(F12<=3033,33) därefter har du talat om för den att OM det skulle vara sant så ska den räkna på (F12*0,2-152,5<0;0). Skulle det däremot vara falskt (alltså värdet F12 överstiger 3033,33) ska den räkna på (F12*0,2-152,5), och eftersom värdet på F12 överstiger 3033,33 så kommer det aldrig produkten kunna rendera i ett negativt värde och därmed finns ingen anledning att ha med <0;0 i denna del av formeln..
Sen har du bara gjort samma sak för den andra delen i hela funktionen.

Har jag tolkat ditt resultat rätt?

Yep, så bör det vara, den första är den primära så att säga.

  • Medlem
  • International user
  • 2011-05-17 20:30

Visa sig va lite knepigare än väntat men det löste sig ju.

Kom dock på en annan fråga nu;

När jag bygger funktioner som är beroende av andra funktioner och inte matar in något värde i dess har jag upptäckt att detta påverkar andra celler så att jag får små varningstrianglar i dessa celler.

Jag förstår att detta har en funktion (visa att resultatet är beroende av en inmatning i en anan cell) men finns det något sätt att slippa få fram dessa trianglar och bara ha tomma celler tills det att man har matat in information i den cell som cellen är beroende av?

Egentligen fyller det inget syfte annat än estetiskt.

Du kan kolla om rutan "Visa varning om formel innehåller referens till tom cell" är ikryssad. Kryssa i så fall ur den. I inställnginar.../Allmänt

  • Medlem
  • International user
  • 2011-05-17 20:50
Ursprungligen av M. Sundbom:

Du kan kolla om rutan "Visa varning om formel innehåller referens till tom cell" är ikryssad. Kryssa i så fall ur den. I inställnginar.../Allmänt

Testade detta men det tog bara bort majoriteten av de små blå trianglarna uppe i vänstra övre hörnet i cellerna. Trianglarna jag önskar ta bort är de röda som finns mitt i cellen. Hoppas det går..

Egentligen gäller väl även det konstanta värden som finns i vissa celler. Att det värdet endast ska komma fram om man matat in grundvärdet högst upp i kolumnen. Med andra ord innehåller hela rad 7 ett och samma värde på -30,00.

Det mest ideala vore om hela kolumnen kunde vara tom (inga trianglar eller konstanta värden) tills det att jag matat in grundvärdet högst upp och därefter kommer allt fram som det ska..

Programmet börjar med den första (yttersta) villkorssatsen. Sedan beräknas en av de andra beroende på utfallet.

Jag bara tog din formel och la in en rutin för att ge resultatet 0 vid negativt resultat oavsett om det första villkoret är sant eller falskt. Om du har valt just 3033,33 av den enda anledningen att slippa negativa resultat kan du ju skippa OM() i detta led. Typ så här:
=OM(F12<=3033,33;F12*0,2-152,5;OM(3033,33*0,2+(F12-3033,33)*0,41-152,5<0;0;3033,33*0,2+(F12-3033,33)*0,41-152,5))

Om det känns konceptuellt bättre kan du testa hela satsen först men det ser lite krångligare ut:
=OM(OM(F12<=3033,33;F12*0,2-152,5;3033,33*0,2+(F12-3033,33)*0,41-152,5)<0;0;OM(F12<=3033,33;F12*0,2-152,5;3033,33*0,2+(F12-3033,33)*0,41-152,5))

De röda trianglarna visar antagligen att formeln inte går att beräkna, t.ex. om du försöker ta roten ur -30 eller dividera med 0. Lägg in en OM()-sats om du vill slippa se dem.

Du kan använda villkorlig formatering. T.ex. sätt formatet vit text om celler i rad 7 är mindre än noll. Då syns de inte men finns ändå!

  • Medlem
  • International user
  • 2011-05-17 23:07
Ursprungligen av M. Sundbom:

De röda trianglarna visar antagligen att formeln inte går att beräkna, t.ex. om du försöker ta roten ur -30 eller dividera med 0. Lägg in en OM()-sats om du vill slippa se dem.

Du kan använda villkorlig formatering. T.ex. sätt formatet vit text om celler i rad 7 är mindre än noll. Då syns de inte men finns ändå!

Nja de röda trianglarna i mitt fall indikerar att funktionen inte går att räkna fram då information saknas för att kunna färdigställa den (grundvärdet ej inmatat). Så fort jag matat in grundvärdet så ersätts ju triangeln av det värde som funktionen för den cellen tagit fram.

Villkorlig formatering funkar bra men inte i mitt fall. Jag vill ju endast att siffran -30,00 inte ska visas då grundvärdet inte är inmatat. Så fort mat satt in grunvärdet högst upp så vill jag att det ska komma fram. Vad jag förstod kommer villkorlig formatering endast leda till att den permanent inte syns men ändå finns kvar i bakgrunden?

Ursprungligen av iPilot:

Nja de röda trianglarna i mitt fall indikerar att funktionen inte går att räkna fram då information saknas för att kunna färdigställa den (grundvärdet ej inmatat). Så fort jag matat in grundvärdet så ersätts ju triangeln av det värde som funktionen för den cellen tagit fram.

Villkorlig formatering funkar bra men inte i mitt fall. Jag vill ju endast att siffran -30,00 inte ska visas då grundvärdet inte är inmatat. Så fort mat satt in grunvärdet högst upp så vill jag att det ska komma fram. Vad jag förstod kommer villkorlig formatering endast leda till att den permanent inte syns men ändå finns kvar i bakgrunden?

Röd triangel betyder att formeln är felaktig eller odefinierad rent matematiskt, och har egentligen inget att göra med att cellen som den refererar till är tom. Vad är de för typ av formel som reagerar med röd triangel?

Jag fattar inte varför villkorlig formatering inte funkar i ditt fall. Resultatet beror på vad du anger för villkor. Inget problem att sätta det så att innehållet inte syns om talet är -30, <0, eller "Hej!", en alltid annars.

  • Medlem
  • International user
  • 2011-05-18 00:30
Ursprungligen av M. Sundbom:

Röd triangel betyder att formeln är felaktig eller odefinierad rent matematiskt, och har egentligen inget att göra med att cellen som den refererar till är tom. Vad är de för typ av formel som reagerar med röd triangel?

Jag fattar inte varför villkorlig formatering inte funkar i ditt fall. Resultatet beror på vad du anger för villkor. Inget problem att sätta det så att innehållet inte syns om talet är -30, <0, eller "Hej!", en alltid annars.

Ett exempel på formel är denna: =SUMMA(B6:B7)
Alltså en väldigt enkel men den cellen med den formeln indikerar en röd triangel tills dess att jag satt in mitt grundvärde högst upp.
Saken är den att formlerna är beroende av varandra. Formel 3 i ledet är beroende av formel 2 som i sin tur är beroende av grundvärdet 1 (högst upp) etc. etc. Men somsagt, då jag matat in grundvärdet högst upp så försvinner alla trianglar i alla celler och ersätts av vad än formlerna i respektive cell ger för resultat.

Mer utförlig förklaring på problemet:
Grundvärdet (i formatet 00:00) matas in i cell B2 och B3. Dess summeras ihop i cell B4. Vidare är cell B6 den första cellen i kolumnen som har en röd triangel.
Funktionen i denna cell heter: =(TID.TILL.TIM(B2)*70,5)+(TID.TILL.TIM(B3)*90,5)
Håller jag markören över denna triangel står det: "funktion "TID.TILL.TIM" förväntar sig en tidslängd, men cell B2 innehåller en tom cell." Nästa röda triangel i kolumnen finns i cell B8 och håller jag markören över denna står det "Cell B6 innehåller ett fel." Fortsätter jag ner i kolumnen kommer det stå "Cell B8 innehåller ett fel." osv osv. Med andra ord blir den ena cellen fel för att den över inte har fått rätt information.

Jag antar att jag måste skriva om funktionen i B6 så att den endast räknar ut svaret om om cellen B2 innehåller ett värde. Men detta trodde jag va en generell regel i Numbers att om det inte finns ett värde så visas ingenting, men tydligen visas en röd triangel..?

Testade mig fram lite med villkorlig formatering och löste det genom att ge den regeln "Mindre än" och sen skrev jag till B2. Därmed kommer den endast visas i normala färger då jag skriver in ett värde i B2 (som alltid kommer vara positivt och därmed större än -30).

Senast redigerat 2011-05-18 13:04
  • Medlem
  • International user
  • 2011-05-18 15:55

Allting löst nu genom att göra om vissa funktioner i flera celler så att de indikerar siffran noll då ett värde inte finns. Sedan använde jag villkorlig formatering så att varje gång siffran är lika med noll i cellerna så blir de till samma färg som bakgrunden och syns därmed inte - precis som M. Sundbom nämnde.

Nu återstår dock det absolut sista problemet:
=OM(B4=0;0;OM(B3=0;TID.TILL.TIM(B2)*70,5;(TID.TILL.TIM(B2)*70,5)+(TID.TILL.TIM(B3)*90,5)))

Denna funktion arbetade jag fram. Cellerna B2 och B3 är där jag matar in mina grundvärden som alla andra celler behöver för uträkningen. Dessa skrivs i tidsformatet 00:00. Ovanstående funktion tar värdet på B2 och multiplicerar med 70,5 plus värdet på B3 multiplicerat med 90,5 OM B4 (cellen där summan är B2+B3) inte är lika med 0 (noll). Vidare så har jag nästlat en OM-funktion så att det räcker med att endast skriva in ett värde på B2 och ändå få ut ett resultat utan att något måste stå i B3, därav (OM(B3=0;.....osv.).

Nu vill jag lägga till något i funktionen nämnd ovan så att den även gör det motsatta, alltså att det även endast ska räcka med ett värde på B3 och inget på B2 för att den ska räkna ut det hela..

Jag fick för mig att det skulle va enligt följande men det stämmer inte:
=OM(B4=0;0;(OM(B3=0;TID.TILL.TIM(B2)*70,5;(TID.TILL.TIM(B2)*70,5)+(TID.TILL.TIM(B3)*90,5));(OM(B2=0;TID.TILL.TIM(B3)*90,5;(TID.TILL.TIM(B2)*70,5)+(TID.TILL.TIM(B3)*90,5)))))

Förslag? Tacksam för svar!

Senast redigerat 2011-05-18 16:40

Felet i sista formeln är att du tre alternativ för den yttrersta OM-satsen. Det finns bara två: sant eller falskt. Stoppa in den sista OM i den andra OM. Typ så här:

=OM(B4=0;0;(OM(B3=0;TID.TILL.TIM(B2)*70,5;OM(B2=0;TID.TILL.TIM(B3)*90,5;TID.TILL.TIM(B2)*70,5+TID.TILL.TIM(B3)*90,5))))

Men jag tycker att du krånglar till det. Med tanke på att du har helt linjära, additiva beräkningar så kan du låta det stå noll i alla tomma celler som default. Du får samma resultat ändå. Och med din villkorliga formatering slipper du se nollorna om de stör. Och du slipper alla röda trianglar som uppstår pga att tidslängdsformler i Numbers verkar vara odefinierade för tomma celler.
Då det räcker formeln:
TID.TILL.TIM(B2)*70,5+TID.TILL.TIM(B3)*90,5

  • Medlem
  • International user
  • 2011-05-18 19:07

Ok, tror jag hänger med men testade denna och det finns tydligen ett syntaxfel. Det enda jag kunde finna var ett mellanslag som inte skulle vara där som jag korrigerade, trots detta är det fortfarande något som inte stämmer.

Att ha alla celler som noll som default borde ju faktiskt lösa problemet som du säger! Är faktiskt inget jag reflekterat över men har själv reagerat över att en tom cell faktiskt inte behandlas som noll per automatik. Är verkligen nybörjare på detta med Numbers så hur löser jag detta?

Ursprungligen av iPilot:

Ok, tror jag hänger med men testade denna och det finns tydligen ett syntaxfel. Det enda jag kunde finna var ett mellanslag som inte skulle vara där som jag korrigerade, trots detta är det fortfarande något som inte stämmer.

Jag hittar inget syntaxfel (det kan bli ett eller flera mellanslag extra om du klipper och klistrar från webbläsaren men de har du hittat vad jag förstår). Men du måste förstås definiera cellerna B2&B3 i rätt format om de ska vara indata till en tidslängdsfunktion. Annars får du röd triangel som ett brev på posten.

Citat:

Att ha alla celler som noll som default borde ju faktiskt lösa problemet som du säger! Är faktiskt inget jag reflekterat över men har själv reagerat över att en tom cell faktiskt inte behandlas som noll per automatik. Är verkligen nybörjare på detta med Numbers så hur löser jag detta?

Att vara nybörjare löser man snabbast genom att öva och läsa på. ;). Numbers verkar inte vara konsekvent med hur det tolkar tomma celler. Men ursprungsnollor i alla celler är väl bara att knappa eller klistra in.

  • Medlem
  • International user
  • 2011-05-18 21:18

Fick det att funka super med din funktion, det va ytterligare något mellanslag som jag missat. Tackar än en gång för hjälpen!

Nu ska jag bara se till att få ett par celler att avrunda de resultat jag får fram nedåt men jag tror att jag ska lyckas lösa det på egen hand med hjälp av funktionen AVRUNDA.NEDÅT. Återkommer om det dyker upp problem.

Bra att du fick det att funka. Jag lärde mig lite själv om Numbers. Har egentligen aldrig gett det en chans tidigare.

Snyggt program men räcker ännu inte till för mig. På tok för segt.

  • Medlem
  • International user
  • 2011-05-19 21:46

Nu kom jag på det!!
Cellerna tolkas som noll om man hoppar mellan samma cellformat. Om jag t.ex. har information i cell B2 och B3 (formatet "tid" 00:00) och matar in funktionen =SUMMA(B2+B3) i cell B4 (formatet "Valuta" €) så kommer den inte ta det (få en röd triangel) även om cell B2 och B3 är tomma (noll) för tillfället. Detta beror just på att det inte tolkas som noll om du har olika format i cellerna.

Skulle jag däremot ha samma format i samtliga celler så kommer en tom cell tolkas som noll och därmed kommer resultatet i B4 vara just noll även om cell B2 och B3 är tomma, blir ju då 0+0.

Jag har formatet tid i de tre översta radera och resterande rader (ca 20 st) är formatet valuta. Enda gången (nästan) jag behöver tänka på ovanstående och göra komplicerade nästlade OM-funktioner är alltså när konverteringen sker mellan formaten. Skulle jag t.ex. göra en funktion i cell B5-B20 (som alla har samma format) kan jag göra enkla SUMMA-funktioner även om vissa av cellerna är tomma, för då tolkas de somsagt som noll och går ändå ihop i ekvationen.

Hoppas detta hjälper någon annan med för det tog mig ett par dagar att förstå..

  • Medlem
  • International user
  • 2011-05-21 00:32

Nu ser allt ut att vara färdigt och nu återstår bara en liten - ganska viktig - sak.
Finns det någon inbyggd funktion i Numbers/Excel där man kan "Exportera" kalkylen säkert?
Jag önskar nämligen dela ut den till andra och samtidigt vill jag se till att de inte kommer åt funktionerna som jag arbetat fram utan att de endast ska kunna använda sig av kalkylen som referens och inte kunna bygga ett eget liknande program baserat på mitt.

Min förhoppning är att den ska kunna användas i såväl Excel som Numbers men det viktiga för mig är somsagt att det går att sprida säkert.

  • Medlem
  • Norrköping
  • 2011-05-21 09:38

I Numbers kan du bara lägga på ett lösenord för att öppna filen.
I Excel kan du lägga olika lösenord för att läsa och öppna och du kan styra vad man får göra i filen beroende på vilket lösenord du har angivit.

  • Medlem
  • International user
  • 2011-05-24 14:20

Nu till frågan; om jag önskar skapa en funktion med 3 gränsvärden och alltså inte två som tidigare, då funkar väl inte en OM-funktion längre iom att den endast innehåller ett SANT el. FALSK resultat?

Behöver skapa något som räknar ut åt mig enligt följande:

Om resultatet i cell B1 är mindre än 1000 så ska den räkna B1*2%
Om resultatet i cell B1 är mer än 1000 men mindre än 1500 så ska den räkna B1*3%
Om resultatet i cell B1 är mer än 1500 så ska den räkna B1*4%

Detta är alltså bara ett exempel för att illustrera problemet då en OM-funktion bevisligen inte funkar i denna situation.

Varför skulle inte OM funka? Vi har ju nästlat OM-satser tidigare i tråden utan problem. Ditt exempel kan se ut så här i Numbers

=OM(B1<1000;B1*2%;OM(B1>1500;B1*4%;B1*3%))

I ditt exempel anger du inte vad som gäller om B1=1000 och B1=1500. I mitt exempel ingår 1000 och 1500 kategorin 3%. Använd <= eller >= för att sätta intervallen som du har tänkt.

Bevaka tråden