Permalänk
Medlem

Klurig excel fråga

Håller på med ett litet verktyg för att hjälpa mig planera på jobbet.
Och då är frågan om någon vet något bra svar på detta.

Tanken är att en cell i "blad2" skall summera värden från "blad1", och från vilka celler den skall hämta ifrån bestäms med ett datumintervall. Så i blad2 anger jag hur många dagar frammåt från dagens datum den skall läsa.
och uppsättning i blad1 är så här:

KOLUMN A _____ B
datum ______ värde

Så om jag sätter att den skall kontrollera 7 dagar frammåt, så vill jag att den skall hämta värden från kolumn b där datumet är från idag och 7 dagar framåt. Tanken är att i blad1 att jag fyller i hur mycket det är beställt av en viss kvantitet till ett visst datum. Sedan summera de värdena i ett visst datum intervall under levererat i blad2.

Förstår att det inte är lätt att förstå. Men skulle väldigt mycket uppskatta hjälp.
bifogar de jag gjort hittills http://blandat.ahnell.se/pe_planning.xls

Permalänk
Medlem

Förstår jag det hela rätt:

I Blad2!B13 är datumet du vill kolla upp.
I Blad2!B14 skall alla värden för MI5 som är inom intervallet TODAY() till B13 simmeras för kolumnen MI5 på Blad1?

Vilken version av excel kör du till att börja med? Det finns funktioner i Excel 2007 som kan användas. Om du kör 2007 skulle Blad2!B14 kunna innehålla formeln:

=SUMIFS(Blad1!D2:D366;Blad1!B2:B366;">= "&TODAY();Blad1!B2:B366;"<"&TODAY() + Blad2!$B$32)

Du kan behöva modifiera villkoren beroende på om det skall vara inklusive eller exklusive gränsvärderna (start/slutdatum)

Visa signatur

Crap.

Permalänk
Medlem

Dumma smiley. Poängen är att använda SUMIFS, det finns bra med exempel på denna funktion på nätet. Arg. 1 är kolumnen du vill summera, sen kommer argumenten parvis: range att kontrollera (Datumkolumnen i ditt fall), samt kriteria. Du vill ha två par: en för större än datumet, en för mindre än datumet + x.

Visa signatur

Crap.

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av Morr
Dumma smiley.

Kryssa för "Inga smilies i detta inlägg, tack."

Permalänk
Medlem

[

Citat:

Ursprungligen inskrivet av Morr
Förstår jag det hela rätt:

I Blad2!B13 är datumet du vill kolla upp.
I Blad2!B14 skall alla värden för MI5 som är inom intervallet TODAY() till B13 simmeras för kolumnen MI5 på Blad1?

Vilken version av excel kör du till att börja med? Det finns funktioner i Excel 2007 som kan användas. Om du kör 2007 skulle Blad2!B14 kunna innehålla formeln:

=SUMIFS(Blad1!D2:D366;Blad1!B2:B366;">= "&TODAY();Blad1!B2:B366;"<"&TODAY() + Blad2!$B$32)

Du kan behöva modifiera villkoren beroende på om det skall vara inklusive eller exklusive gränsvärderna (start/slutdatum)

Såg att jag skrev fel. datumet står i kolumn B och värdet i D i blad1 .
Och jag vill att den skall sumera värderna i kolumn D i blad1 för de datum jag valt, till Blad2 B14.

Dock så har jag inte 2007, utan 2003 på jobbet. Men hemma har jag 2007.

Permalänk
Medlem

hej
En annan hittade en bra lösning åt mig, vilket funkade perfekt

Citat:

Ursprungligen inskrivet av Jan
Hej.

Jag har nog en lösning åt dig, kanske inte den bästa men...

Har först skapat ett par hjälpberäkningar i Blad2.
-Sök första rad i Blad 1 för aktuell data
B36: =PASSA(B8;Blad1!B1:B366;0)
-Sök sista rad i Blad 1 för aktuell data
B37: =PASSA(B13;Blad1!B1:B366;0)
-B37 kan även göras så här om du har en kontinuerlig lista
B37: =B36+B32

Dina celler B14 till B17 ser ut så här.
B14: =SUMMA(INDEX(Blad1!D1:Blad1!D366;B36;0;1):INDEX(Blad1!D1:Blad1!D366;B37;0;1))
B15: =SUMMA(INDEX(Blad1!E1:Blad1!E366;B36;0;1):INDEX(Blad1!E1:Blad1!E366;B37;0;1))
B16: =SUMMA(INDEX(Blad1!F1:Blad1!F366;B36;0;1):INDEX(Blad1!F1:Blad1!F366;B37;0;1))
B17: =SUMMA(INDEX(Blad1!G1:Blad1!G366;B36;0;1):INDEX(Blad1!G1:Blad1!G366;B37;0;1))

Permalänk
Medlem

Då borde ovanstående funka rakt av på din dator hemma (jag testade i ditt exempel och det fungerar givet att jag förstod uppgiften rätt).

Återkommer med en motsvarighet för 2003.

Visa signatur

Crap.

Permalänk
Medlem

Ok. Annars hade antagligen nedanstående kod funkat i ditt 2003-ark:

Citat:

=SUMIF(Blad1!B2:B366;">="&Blad2!B13;Blad1!D2:D366)-SUMIF(Blad1!B2:B366;">"&Blad2!B13+Blad2!B32;Blad1!D2:D366)

För att kunna göra motsvarande för övriga behöver du ha åtminstone raderna absoluta i formeln.

Sen kan man alltid blanda in arrayformler, de är oerhört kraftfulla men en aningen dryga att komma in i.

Visa signatur

Crap.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Morr
Ok. Annars hade antagligen nedanstående kod funkat i ditt 2003-ark:

För att kunna göra motsvarande för övriga behöver du ha åtminstone raderna absoluta i formeln.

Sen kan man alltid blanda in arrayformler, de är oerhört kraftfulla men en aningen dryga att komma in i.

Ska prova det när jag kommer hem, alltid kul att lära sig mera i excel