PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelFörnekling av formelFörnekling av formel
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2020-04-21 14:12
 

 Jag har problem med att min formel jag har gjort är mer än 64 kapslingsnivåer. 

 

Jag har gjort ett excelblad för att beräkna antalet personal beroende på kunder/gäster där jag har delat upp antalet gäster i steg från 100-1000 personer och med 3 olika svårighetsgrader. Tanken är att man ska kunna ange ett antal med en svårighetsgrad så ger excel hur många personal som det bör vara. 

=OM(OCH(C2<=100;C3=1);2;OM(OCH(C2<=100;C3=2,3);6;OM(OCH(C2<=100;C3=3);6;
OM(OCH(C2<=160;C3=1);3;OM(OCH(C2<=120;C3=2);7;OM(OCH(C2<=112;C3=3);7;
OM(OCH(C2<=220;C3=1);4;OM(OCH(C2<=140;C3=2);8;OM(OCH(C2<=128;C3=3);8;
OM(OCH(C2<=280;C3=1);5;OM(OCH(C2<=160;C3=2);9;OM(OCH(C2<=144;C3=3);9;
OM(OCH(C2<=340;C3=1);6;OM(OCH(C2<=180;C3=2);10;OM(OCH(C2<=160;C3=3);10;

Första spalten är 100 som ökar med 60 personer för varje steg upp till 1000 personer med svårighetsgrad 1
Andra spalten är 100 som ökar med 20 personer för varje steg upp till 1000 personer med svårighetsgrad 2
Tredje spalten är 100 som ökar med 16 personer för varje steg upp till 1000 personer med svårighetsgrad 3

Dessa förhåller sig till C2 som är antal och C3 som är svårighetsgrad. 

Hur kan jag göra för att inte få så mycket text eller finns det något annat smart sätt att åstakomma samma sak?

Nytt inlägg
 2020-04-22 10:18
 
 Ändrad av anonymous  på 2020-04-22 12:23:19

 Oj vad krångligt sånt där ser ut när man inte skrivit själv...

En uppenbar förenkling är ju att Kolla i C3 först och sedan köra varje kolumn för sig.

Om du har nyaste Excel kan du dessutom anvädna IFS för att nästla lite snyggare

=OM(C3=1;IFS(C2<=100;1;C2<=160;2;C2<=220;3;C2<=280;4;C2<=340;5);
OM(C3=2;IFS(C2<=100;6;C2<=120;7;C2<=140;8;C2<=160;9;C2<=180;10);
OM(C3=3;IFS(C2<=100;6;C2<=112;7;C2<=124;8;C2<=136;9;C2<=148;10);"Fråga Chefen, Det här har vi nte planerat för")))

 

Det blir inte så mycket kortare, men jag tycker att det blir enklare att följa

Men. Sen har du ju hyggligt enkla matematiska samband, så du kan ju förnkla ytterligare. Dvs om du tycker att det blir enklare att läsa formler

Om du tar
=heltal((C2-101)/60)

Så får du ett tal som ökar Ett steg för var 60:e gäst

Grundbemanningen kan du fixa med hjälp av VÄLJ (om det står 1 i C3 retrurneras 1, om 2=6 om3 =6)

=VÄLJ(C3;1;6;6)

Lägg på dina heltalsformel (+1)

=VÄLJ(C3;1+HELTAL((C2-101)/60);6+HELTAL((C2-101)/20);6+HELTAL((C2-101)/16))+1

Tyvärr skiter det sig om det är mindre än 100 gäster så den får du kolla separat med ett OM 

=OM(C2<=100;VÄLJ(C3;1;6;6);VÄLJ(C3;1+HELTAL((C2-101)/60);6+HELTAL((C2-101)/20);6+HELTAL((C2-101)/16))+1)

+ ett villkor om det är fler än 1000

=OM(C2<=100;VÄLJ(C3;1;6;6);OM(C2>1000;"inget stjärterum";VÄLJ(C3;1+HELTAL((C2-101)/60);6+HELTAL((C2-101)/20);6+HELTAL((C2-101)/16))+1))

Nytt inlägg
 2020-04-22 16:07
 
 Ändrad av Christian  på 2020-04-22 16:11:47

 Hej hej.

Jag hade nog skapat en lista med tre kolumner istället. Blir mycket lättare att arbeta med då, samt mer flexibelt om man vill utöka med fler svårighetsgrader m.m. 

I mitt exempel:

a2:a50, kunder.

b2:b50, svårighetsgrad.

d2:d50, personal.

Därefter finns flera lösningar, varav

=min((--(a2:a50>=c2))*(--(b2:b50=c3))*d2:d50)))

Slå in med ctrl+shift+enter då det är en matrisformel.

Kan inte testa den då jag inte sitter framför datorn. Eventuellt så genereras en del nollvärden vilket i så fall resulterar i noll som min-värde. Skulle det vara så, så får du använda minifs istället för min så att du kan villkora bort nollvärden. <>0

Mvh

Christian 

 

 

 

Nytt inlägg
 2020-04-27 12:20
 

 Om jag väljer att göra det i kolumner istället, hur kan jag hantera jag det enklast? För hänger inte riktigt med i formeln "=min((--(a2:a50>=c2))*(--(b2:b50=c3))*d2:d50)))" Men då kanske det är enklare dessutom att lägga kolumnerna på ett eget ark

Nytt inlägg
 2020-04-27 13:31
 

 =MIN(OM((--(A2:A50>=C2))*(--(B2:B50=C3))<>0;D2:D50))

Ta den istället, den ignorerar 0 värdena, så att du får ut det lägsta resultatet som inte är noll. 

a) (--(A2:A50>=C2)), den här delen kräver att värden i A2:A50 är större än vad som står i C2, den filtrerar bort de som är mindre.

b) (--(B2:B50=C3)), Filtrerar bort de som inte har samma text som i C3. 

c) <>0, Tar bort nollresultaten.

d) D2:D50, Returnerar värden för de rader som har blivit godkända i a) och b)

Mvh Christian

p.s Självklart kan du lägga dina extrakolumner på eget blad.

 

Nytt inlägg
 2020-04-27 14:34
 

 Så om jag förstår det rätt så om jag tar formeln som du skrivit där;

a) (--(A2:A50>=C2)) - blir antalet gäster från 100 där spannet blir 112, 128, 144 etc. Måste detta vara konstant eller kan det vara fasta tal?

b) (--(B2:B50=C3)), Filtrerar bort de som inte har samma text som i C3. - detta blir då i förhållande till svårighetsgrad? mellan 1-3 i kolumnform?

och

d) D2:D50, Returnerar värden för de rader som har blivit godkända i a) och b) - blir kolumn med retunerat värde beroende på vad kolumn A2 och B2 säger? 

Eller fattar jag fel?
 Är lite förvirrad i resonemanget så jag tackar ödmjukast för hjälpen! :)

 

Nytt inlägg
 2020-04-27 14:34
 

 Så om jag förstår det rätt så om jag tar formeln som du skrivit där;

a) (--(A2:A50>=C2)) - blir antalet gäster från 100 där spannet blir 112, 128, 144 etc. Måste detta vara konstant eller kan det vara fasta tal?

b) (--(B2:B50=C3)), Filtrerar bort de som inte har samma text som i C3. - detta blir då i förhållande till svårighetsgrad? mellan 1-3 i kolumnform?

och

d) D2:D50, Returnerar värden för de rader som har blivit godkända i a) och b) - blir kolumn med retunerat värde beroende på vad kolumn A2 och B2 säger? 

Eller fattar jag fel?
 Är lite förvirrad i resonemanget så jag tackar ödmjukast för hjälpen! :)

 

Nytt inlägg
 2020-04-28 06:57
 

 A) För att funktionen ska fungera behöver det var ett tal per cell, eller helt tomt(kommer tolkas som 0). Osäker på vad du menar med "fasta tal" vs konstanter.  Du är fri att ändra talen i din lista, e.g de behöver inte vara konstanta, utan kan varieras i all oändlighet :). 

B). Så länge som du är konsekvent, dvs använder samma nomenklatur i C3 såsom B2:B50 så kan du skriva vad som helst. 1-3 funkar, A,B,C funkar.. 

D). Korrekt. Så om du har valt svårighetsgrad 2, och större än 50, så kommer D2:D50 returnera samtliga celler som uppfyller dina kriterier. Därefter kommer =Min att plocka ut det minsta talet därifrån. 

Det går att markera en del av en formel och trycka F9 för att utvärdera delresultatet. Markera exempelvis (--(A2:A50>=C2)) och tryck F9. Testa även (A2:A50>=C2) så förstår du varför jag har dubbla negationstecken inbakat i formeln. 

Mvh

Christian

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelFörnekling av formelFörnekling av formel

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter