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

 
ForumForumDiskussionerDiskussionerExcelExcelHitta och returnera pris baserat på öppet inköpsavtal (mellan 2 datum)Hitta och returnera pris baserat på öppet inköpsavtal (mellan 2 datum)
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2022-05-18 13:37
 
 Ändrad av Niclas  på 2022-05-18 13:38:52

Hej!

Lek med tanken att jag har flera säljavtal på flera artiklar. Dessa avtal har start- och slutdatum. 
Jag vill per transaktion (ink datum) hitta vilket avtal som var gällande och returnera vilket pris. 
Alltså söka efter kolumn M och hitta var kolumn N är aktivt mellan kolumn F och G, för att leverera värdet från kolumn C i kolumn O

 

 

 

ITEMNUMBER MODULE PRICE FromDate ToDate       Item Trans   Önskar att hitta
12345 Vend 24.800000 2021-01-01 2022-03-30       12345 2021-12-31   24,8
12345 Vend 31.200000 2022-03-31 2022-05-17       55555 2021-12-31   25,2
33333 Vend 42.800000 2022-05-18 2154-01-01       55555 2022-04-10   33,2
55555 Vend 25.200000 2021-01-01 2022-03-30       99999 2022-01-01   34,8
55555 Vend 33.200000 2022-03-31 2154-01-01       99999 2022-02-04   41,1
99999 Vend 34.800000 2021-05-17 2022-01-24              
99999 Vend 41.100000 2022-01-25 2154-01-01              

 

 

Förmodar att den ska hitta datum som är större än men också mindre än och annars ska den leta vidare. 

Tack på förhand!

Nytt inlägg
 2022-05-18 15:42
 

med SUMMA.OMF() kan du ha flera villkor:

=SUMMA.OMF(C:C;A:A;I2;D:D;"<="&J2;E:E;">="&J2)

Det enda problemet är att du kan få två träffar om du har överlappande perioder i Pristabellen.

Du kan ha en kontrollkolumn där du kör ANTAL.OMF() och kontroller artt det inte finns mer än en träff

=ANTAL.OMF(A:A;I2;D:D;"<="&J2;E:E;">="&J2)

 

Eller ditt älskade filter (utan tabell...)

=FILTER(C:C;(A:A=I2)*(D:D<=J2)*(E:E>=J2))

 

Nytt inlägg
 2022-05-19 06:20
 
 Ändrad av Niclas  på 2022-05-19 06:21:06

 Helt fantastiskt, båda två fungerade suveränt. Stort tack!

 Är det även möjlighet att använda Index i kombination med Passa i ett sådant case?

/Niclas 

Nytt inlägg
 2022-05-19 08:58
 

 Hej hej

Jo det är det:

=INDEX(C:C;passa(1;(A:A=I2)*(D:D<=J2)*(E:E>=J2))

Egentligen väldigt liknande lösning som anons. Vilkoren utvärderas först var för sig och genererar matriser bestående av SAnt/Falskt för varje cell som utvärderas, därefter multipliceras matriserna med varann. Sant*sant*sant blir 1, alla andra kombinationer blir 0. Därför passar vi mot 1 för att hitta första raden som uppfyller samtliga villkor. Jag hade dock avgränsat rangerna till där din data ligger, så att formeln inte blir onödigt tung. C$2:C$200 eller vad det nu kan tänkas vara för område du behöver peka ut. Samtliga matriser måste dock vara samma längd för att det ska fungera.

Mvh

Christian

Nytt inlägg
 2022-05-19 10:36
 

 Hej!

Tack för snabbt svar.

Jag fick olika värden baserat på hur jag låste cellerna och refererande till exakta celler alltså C

ITEMNUMBER MODULE PRICE FromDate ToDate     Item Trans Hit letar jag Önskar att hitta
12345 Vend 24,8 2021-01-01 2022-03-30     12345 2021-12-31 0 24,8
12345 Vend 31,2 2022-03-31 2022-05-17     55555 2020-12-31 0 25,2
33333 Vend 42,8 2022-05-18 2154-01-01     55555 2022-04-10 0 33,2
55555 Vend 25,2 2021-01-01 2022-03-30     99999 2022-01-01 0 34,8
55555 Vend 33,2 2022-03-31 2154-01-01     99999 2022-02-01 0 41,1
99999 Vend 34,8 2021-05-17 2022-01-24     99999 2022-02-01 0 41,1
99999 Vend 41,8 2022-01-25 2154-01-01     99999 2022-02-01 0 41,1

Ovan/under har jag formel: '=INDEX(C:C;PASSA(1;(A:A=H2)*(D:D<=I2)*(E:E>=I2)))

Resultatet blir 0

 

 

Låser jag så får jag samma värde:


Filterfunktionen fungerade fint så har du inte tid att se över denna är jag nöjd ändå.
Fastän jag gärna får rätt på den och lär mig.

Tacksam!

/Niclas 

Nytt inlägg
 2022-05-19 10:56
 

 Hej igen

Det var jag som missade exakt matching i passa funktionen, notera ;0 på slutet nu, notera även att samtliga matriser ska avgränsas till rad 2 till 8.

=INDEX(C$2:C$8;passa(1;(A$2:A$8=I2)*(D$2:D$8<=J2)*(E$2:E$8>=J2);0))

Mvh

Christian

Nytt inlägg
 2022-05-19 11:58
 

 Grymt, tack Christian!
Ska sätta mig och försöka tolka dessa.

Tack återigen!

/Niclas 

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelHitta och returnera pris baserat på öppet inköpsavtal (mellan 2 datum)Hitta och returnera pris baserat på öppet inköpsavtal (mellan 2 datum)

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