bigskyMedlem sedan maj 2002821 inlägg Varför kan man inte kapsla mer än 7 funktioner i Excel? Hur kan jag göra om denna kod för att den inte ska generera ett fel:
=
OM(Schema!B6="D";Passtider!$D$4;
OM(Schema!B6=1;Passtider!$D$5;
OM(Schema!B6=2;Passtider!$D$6;
OM(Schema!B6=3;Passtider!$D$7;
OM(Schema!B6=4;Passtider!$D$8;
OM(Schema!B6=5;Passtider!$D$9;
OM(Schema!B6=6;Passtider!$D$10;
OM(Schema!B6=7;Passtider!$D$11;
OM(Schema!B6=8;Passtider!$D$12;
OM(Schema!B6="E";Passtider!$D$14;
OM(Schema!B6="K";Passtider!$D$16;
OM(Schema!B6=10;Passtider!$D$17;
OM(Schema!B6=11;Passtider!$D$18;
OM(Schema!B6=12;Passtider!$D$19;
OM(Schema!B6="RC";Passtider!$D$21;
OM(Schema!B6="SP";Passtider!$D$22;
OM(Schema!B6="A";Passtider!$D$23;
OM(Schema!B6="S";Pass!$C$2;
))))))))))))))))))
Kalle MMedlem sedan mars 20041 936 inlägg Tror du får göra det via VBA.
Mvh
DannyMedlem sedan juli 200412 913 inlägg tänkte på det också, det måste ju vara det bästa, det där var ju bara för löjlig kod :)
checka t ex här:
http://www.xldennis.se/programmering.htm
jag kollade där under villkorsstyrd formattering, men VBA är inte min starka sida...
bigsky skrev:
Varför kan man inte kapsla mer än 7 funktioner i Excel?
Tror gränsen är lite högre 7 kapslingar men det finns en gräns någonstans där. Tja, man kan helt enkelt inte.... det är bara att acceptera (förmodligen finns gränsen där för att prestanda blir för dåliga och att det är aldeles för lätt att tappa bort sig och göra fel).
VBA med "Select Case" borde fungera. Men det är ju krångligt
Men du kan naturligtvis fuska :-) !!!
Använd "VÄLJ" Det är excels förenklad variant av "Select Case". Dvs du anger en variabel, sedan kan du rabbla upp åtgärder för bestämda värden. Tyvärr är den lite begränsad, den tar bara emot siffror mellan 1-30 och siffran bestäms av positionen i formeln, dvs om du är ute efter 25-30 så måste du mata in 24 semikolon (eller subtrahera indata med 24...). Se excels hjälp för en vettigare beskrivning).
Det här exemplet hanterar siffror 1-8 och 10-12 precis som din formel (Obs att "gluggen", eller 9:an blir två semikolon i rad)
=VÄLJ(Schema!$B$6;Passtider!$D$5;Passtider!$D$6;
Passtider!$D$7;Passtider!$D$8;Passtider!$D$9;
Passtider!$D$10;Passtider!$D$11;Passtider!$D$12;;
Passtider!$D$17;Passtider!$D$18;Passtider!$D$19)
Nåja, nu borde det gå att behålla bokstäverna i din OM-formel och klämma in VÄLJ för siffrorna i slutet utan att nästlingarna blir för många
Exempel som borde stämma med ditt...TYP
=OM(Schema!B6="D";Passtider!$D$4;
OM(Schema!B6="E";Passtider!$D$14;
OM(Schema!B6="K";Passtider!$D$16;
OM(Schema!B6="RC";Passtider!$D$21;
OM(Schema!B6="SP";Passtider!$D$22;
OM(Schema!B6="A";Passtider!$D$23;
OM(Schema!B6="S";Passtider!$C$2;
VÄLJ(Schema!$B$6;Passtider!$D$5;Passtider!$D$6;
Passtider!$D$7;Passtider!$D$8;Passtider!$D$9;
Passtider!$D$10;Passtider!$D$11;Passtider!$D$12;;
Passtider!$D$17;Passtider!$D$18;Passtider!$D$19))))))))
Bättre variant för framtiden: Om du har ett liknande problem i framtiden så skulle jag rekommendera att du använder en hjälptabell och "LETARAD"
Ställ upp följande "beslutsstöd" någonstans (t.ex i kolumn A och B i ett blad som heter DoltHjälpBlad)
KolumnA KolumnB
D =Passtider!$D$4
1 =Passtider!$D$5
2 =Passtider!$D$6
3 =Passtider!$D$7
4 =Passtider!$D$8
5 =Passtider!$D$9
6 =Passtider!$D$10
7 =Passtider!$D$11
8 =Passtider!$D$12
E =Passtider!$D$14
K =Passtider!$D$16
10 =Passtider!$D$17
11 =Passtider!$D$18
12 =Passtider!$D$19
RC =Passtider!$D$21
SP =Passtider!$D$22
A =Passtider!$D$23
S =Pass!$C$2
Sen kan du enkelt använda en formel i stil med
=LETARAD(B6;DoltHjälpBlad!$A$1:$B$18;2;FALSKT)
Det blir mycket överskådligare och ganska enkelt att felsöka/ändra.
Lycka till
/MV
DannyMedlem sedan juli 200412 913 inlägg Snyggt!! Det var ungefär sådär jag tänkte att man borde göra. Lagra en form av matris någonstans, där man sedan går in och plockar ut ett värde, så hade jag gjort i Delphi :) Det där är en "fin" lösning! (y)