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

Problem med funktionen PASSA (typ -1)

Rekommendera Poster

TheController

Troligtvis ett löjligt enkelt problem, men måste fråga…

Jag trodde att jag hade förstått funktionen PASSA, men verkar inte som så. Argumentet Typ i passa kan ha tre varianter; -1, 0 eller 1 och det är Typ -1 som jag inte får att fungera som jag trodde att den skulle fungera.
Anta att jag har följande värden i kolumn A1 till A4:
A1: 5
A2: 6
A3: 8
A4: 9

=PASSA(7;$A$1:$A$4;1) returnerar värdet 2 då det är raden för det minsta värde som är större än eller lika med letauppvärdet.
Däremot, och det är här jag får problem:
=PASSA(7;$A$1:$A$4;-1) returnerar värdet #SAKNAS!. Jag tycker att jag här borde få värdet 3 då 8 är det är raden för det minsta värde som är större än eller lika med letauppvärde.

 

Något jag missat här? Varför får jag felvärdet #SAKNAS! när jag använder typ -1 i en PASSA-funktion?

 

Hur gör jag för att få radnumret för det för det minsta värde som är större än eller lika med letauppvärde i detta fall?

 

Bifogar min excelfil där jag testat.

Mvh
TC

passaproblem.xlsx

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
SFLinköping

Troligtvis ett löjligt enkelt problem, men måste fråga…

Jag trodde att jag hade förstått funktionen PASSA, men verkar inte som så. Argumentet Typ i passa kan ha tre varianter; -1, 0 eller 1 och det är Typ -1 som jag inte får att fungera som jag trodde att den skulle fungera.

Anta att jag har följande värden i kolumn A1 till A4:

A1: 5

A2: 6

A3: 8

A4: 9

=PASSA(7;$A$1:$A$4;1) returnerar värdet 2 då det är raden för det minsta värde som är större än eller lika med letauppvärdet.

Däremot, och det är här jag får problem:

=PASSA(7;$A$1:$A$4;-1) returnerar värdet #SAKNAS!. Jag tycker att jag här borde få värdet 3 då 8 är det är raden för det minsta värde som är större än eller lika med letauppvärde.

 

Något jag missat här? Varför får jag felvärdet #SAKNAS! när jag använder typ -1 i en PASSA-funktion?

 

Hur gör jag för att få radnumret för det för det minsta värde som är större än eller lika med letauppvärde i detta fall?

 

Bifogar min excelfil där jag testat.

Mvh

TC

 

Info om PASSA: 

https://support.office.com/sv-se/article/PASSA-Funktionen-PASSA-e8dffd45-c762-47d6-bf89-533f4a37673a

 

Du måste ha värdena i fallande ordning när du letar med -1 om jag fårstått det hela rätt.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
TheController

Ja det stämmer naturligtvis. Tack!

Väldigt opraktiskt kan tyckas då det innebär att man inte kan använda Typ 1 och Typ -1 samtidigt...

 

mvh

TC

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
SFLinköping

Ja det stämmer naturligtvis. Tack!

Väldigt opraktiskt kan tyckas då det innebär att man inte kan använda Typ 1 och Typ -1 samtidigt...

 

mvh

TC

Jo det är lite knäppt.

 

Å andra sidan borde du inte söka efter mindre än och större än värdet samtidigt. 

 

Mvh

Erik

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
TheController

I mitt fall försöker jag få en funktion som mäter avståndet till det exakta värdet och beroende på detta avgöra om jag vill ha Typ -1 eller 1. Dvs om exakt värde inte finns så vill jag ha det värde som ligger närmast exakt värde oavsett om det är det största värde som är mindre än letauppvärdet eller om det är det minsta värde som är större än  letauppvärdet.

Om Letauppvärde är 99 och listan är
40
50
110
Så vill jag returnera 110 (som ligger närmare 99 än 50)
Men om listan är
40
95
110
Så vill ja returnera 95 (som ligger närmare 99 än 110).
Blir ett logiskt test ungefär: (99-INDEX(B1:B3;PASSA(99;B1:B3;1)))>ABS(99-INDEX(B1:B3;PASSA(99;B1:B3;-1)))
Men denna fungerar inte då listorna måste sorteras om baserat på om det är typ 1 eller typ -1

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
SFLinköping

I mitt fall försöker jag få en funktion som mäter avståndet till det exakta värdet och beroende på detta avgöra om jag vill ha Typ -1 eller 1. Dvs om exakt värde inte finns så vill jag ha det värde som ligger närmast exakt värde oavsett om det är det största värde som är mindre än letauppvärdet eller om det är det minsta värde som är större än  letauppvärdet.

Om Letauppvärde är 99 och listan är

40

50

110

Så vill jag returnera 110 (som ligger närmare 99 än 50)

Men om listan är

40

95

110

Så vill ja returnera 95 (som ligger närmare 99 än 110).

Blir ett logiskt test ungefär: (99-INDEX(B1:B3;PASSA(99;B1:B3;1)))>ABS(99-INDEX(B1:B3;PASSA(99;B1:B3;-1)))

Men denna fungerar inte då listorna måste sorteras om baserat på om det är typ 1 eller typ -1

Jag kan för lite excel, men vad händer om du vänder sista Passa till 

PASSA(99;B3:B1;-1)

 

Då ska du enligt min värld söka baklänges.

Annars borde det finnas en funktion som kan vända arrayen med data innan du kör den.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MH_

Är det en skoluppgift? känner igen frågan. 

 

Kan du inte göra en hederlig krånglig lösning. T.ex räkna ut det minsta antalet dagar som skiljer:

=MIN(INDEX(ABS(99-A1:A3);0))

 

Sen gör du om-satser som returnerar exakt träff om den finns, + träff om den finns och neg om den finns, typ:

 

=OM(ANTAL.OM(A1:A3;99)>0;99;OM(ANTAL.OM(A1:A3;99-MIN(INDEX(ABS(99-A1:A3);0)))>0;99-MIN(INDEX(ABS(99-A1:A3);0));99+MIN(INDEX(ABS(99-A1:A3);0))))

 

ed:glömde att göra matris av mitt exempel ...

 

Är dina data alltid sorterade i stigande ordning? 

 

Om du inte hittar någon exakt träff så kan du ju utnyttja att det närmsta högre värdet ett steg ovanför det närmsta lägre. dvs 

 

kolla om 99 fins=returnera 99, annars:

 

=INDEX(A1:A3;PASSA(99;A1:A3;1))  ger det närmsta lägre

och 

=INDEX(A1:A3;PASSA(99;A1:A3;1)+1)  

ger det närmsta över.

 

ed2. jag behöver väl inte påpeka hur mycket lättar alla varianter skulle bli med några hjälpformler?

Redigerad av MH_resurrected

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...