Just nu i M3-nätverket
Gå till innehåll

Alternativ till kapslade funktioner?


aron.sjoberg

Rekommendera Poster

aron.sjoberg

 Hej!


 


Jag har ett antal Excelark där jag använder kapslade funktioner. Det handlar om att få fram ett resultat med två värden ur en datamatris beroende på en persons ålder. Datamatrisen (som i detta fall ligger i ett eget ark som heter Metanormer) kan t.ex. se ut så här: 


 


post-138492-0-92051200-1461835052.jpg


 


Min funktion avgör vilken ålder personen har (utifrån en cell, i detta fall B5) och ska sedan använda rätt celler för en enkel beräkning. Om t.ex. personen är mellan 50-59 år ska 6,2 (C15) och 1,6 (C16) användas.


 


Mina funktioner har hittills använt kapslade funktioner. Här är ett exempel:



 =
OM(OCH(B5>=13);(B10-Metanormer!C3)/Metanormer!C4;
OM(OCH(B5>=14;B5<=15);(B10-Metanormer!C5)/Metanormer!C6;
OM(OCH(B5>=16;B5<=19);(B10-Metanormer!C7)/Metanormer!C8;
OM(OCH(B5>=20;B5<=29);(B10-Metanormer!C9)/Metanormer!C10;
OM(OCH(B5>=30;B5<=39);(B10-Metanormer!C11)/Metanormer!C12;
OM(OCH(B5>=40;B5<=49);(B10-Metanormer!C13)/Metanormer!C14;
OM(OCH(B5>=50;B5<=59);(B10-Metanormer!C15)/Metanormer!C16;
OM(OCH(B5>=60;B5<=69);(B10-Metanormer!C17)/Metanormer!C18;
OM(OCH(B5>=70;B5<=79);(B10-Metanormer!C19)/Metanormer!C20;
OM(OCH(B5>=80;B5<=89);(B10-Metanormer!C21)/Metanormer!C22;
OM(OCH(B5>=90);("Ej normer");"")))))))

Detta är säkert inte det mest eleganta sättet att göra denna typ av villkorad beräkning, men det har fungerat. Nu är jag dessvärre tvungen att använda en äldre version av Excel där man enbart kan använda upp till 7 kapslingsnivåer. Då går det inte att bygga funktionen på detta sätt längre. Jag har inte möjlighet att använda en nyare version av Excel.


 


Hur skulle ett annat sätt att få fram samma funktionalitet se ut? Det handlar ju om någon slags OM värdet i B5 är mellan si-och-så DÅ ska dessa två värden användas i beräkningen.


 


Tack på förhand!


Länk till kommentar
Dela på andra webbplatser

Installera LibreOffice (gratis office-paket) och prova befintlig fil i LibreOffice Calc som är det program i paketet som motsvarar Microsofts Excel.

Länk till kommentar
Dela på andra webbplatser

aron.sjoberg

Tack för tipset men det är alltså inte tillgången till nyare versioner av Excel som är det huvudsakliga problemet för min del utan att Excelfilen måste vara kompatibelt med äldre versioner, typ 2003.

Länk till kommentar
Dela på andra webbplatser

Ove Söderlund

Det borde inte vara så svårt att fixa men jag undrar först om det är möjligt att i bladet "Metanormer" att du kan ha två ålderskolumner, där du har nedre resp. övre åldersgräns brevid varandra samt att ha två nummerkolumner för resp. värde?

Jag menar så här:

post-3307-0-89859400-1461840375_thumb.jpg

 

 

Länk till kommentar
Dela på andra webbplatser

aron.sjoberg

Absolut! Hur datamatrisen ser ut spelar ingen roll. Tänker du på om man skulle kunna använda VLOOKUP funktionen? Jag har tittat på den men förstår inte riktigt hur man lägger in ett villkor med ett visst ålderspann.

Länk till kommentar
Dela på andra webbplatser

Ove Söderlund

Ett förslag på lösning kan vara följande:

 

B5=värde du frågar om

C5=svarsvärde 1

D5=svarsvärde 2

 

Skärmdump:

post-3307-0-76645000-1461852395_thumb.jpg

 

Formler du ska använda i resp cell:

 

C5

=OM(B5>89;0;INDEX(Metanormer!D3:D12;(PRODUKTSUMMA(--(B5<=Metanormer!C3:C12);--(B5>=Metanormer!B3:B12);RAD(A1:A10)))))

D5

=OM(B5>89;0;INDEX(Metanormer!E3:E12;(PRODUKTSUMMA(--(B5<=Metanormer!C3:C12);--(B5>=Metanormer!B3:B12);RAD(A1:A10)))))

Inspiration till den här lösningen har jag fått från denna sida:

Return value if in range in excel (get-digital-help.com)

 

 

Länk till kommentar
Dela på andra webbplatser

  • 3 veckor senare...

Hej,

 

Enklast torde vara att ställa upp följande tabell:

 

Ålder
0 | 6,8 | 1,9
14| 6,7 | 1,6
16| 6,8 | 1,6
20| 7,0 | 1,8
30| 6,7 | 1,8

o.s.v

 

Observera att åldrarna i första kolumnen måste vara sorterade i storleksordning.

 

Du kan då använda formeln LETARAD för att hämta värden för olika åldrar.

=LETARAD(<ålder>;<tabell>;<kolumn med eftersökt värde>)

 

Hälsningar

/Johan

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...