ezz > edb.* > edb.regneark

 #1  
25.05.2005, 23:08
Jørgen Bondesen
Hej NG

Jeg sidder med et problem som Erik Isager har været så venlig, at sende
til
mig, efter aftale.
Jeg kan ikke løse problemet, så jeg håber en anden kan finde de vise sten.
8-)

I kolonne A er Week.
I kolonne B er aflæsning
A B
week meter H2O
1 1
1 1
1 3
tom række
2 5
2 8
2 9
2 11
2 13

I kolonne D har vi dagsforbruget
Diff, day
=IF(A2="";"";B2-MAX(B$1:B1))

I kolonne F har vi ugenr.
Week
1
2
3
4

I kolonne G har vi ugeforbrug baseret på DAGSFORBRUG
Used H2O/week
=SUMPRODUCT(($A$2:$A$10=F2)+0;($D$2:$D$10))

Jeg vi gerne kunne beregne direkte på kolonne A og B, dvs. ingen
mellemregning selvom den også skal bruges.

Når jeg forsøger mig med max. får jeg 13 for week=1.

Jeg vil gerne, at formlen virker uanset hvor mange dage der er fysisk er i
regnearkets uge, det kan være 3 / 5 / 7.
 #2  
26.05.2005, 07:58
TG4600
"Jørgen Bondesen" <bondesen> wrote in message
news:kii1
[..]
> mellemregning selvom den også skal bruges.
> Når jeg forsøger mig med max. får jeg 13 for week=1.
> Jeg vil gerne, at formlen virker uanset hvor mange dage der er fysisk er i
> regnearkets uge, det kan være 3 / 5 / 7.
> --
> Med venlig hilsen
> Jørgen Bondesen


Jeg kan nu heller ikke se at man kan slippe for mellemregningen i kolonne D,
men jeg ville foretrække en lidt simplere formel i kolonne G
"=SUMIF($A:$A;$F2;$D:$D)"

Men jeg vil da lige følge tråden og se om jeg også kan lære noget ;-)

/Tommy
 #3  
26.05.2005, 08:27
Leo Heuser
Hej Jørgen

Hvis jeg har forstået dig rigtigt, vil denne matrixformel
beregne ugeforbruget:

I fx H2:

=HVIS(TÆL.HVIS($A$2:$A$100;F2)=0;0; MAKS(HVIS(
$A$2:$A$100=F2;$B$2:$B$100))-MAKS(HVIS($A$2:$A$100=F1;$B$2:$B$100)))

Afsluttes med <Shift><Ctrl><Enter>, også hvis du redigerer
formlen senere.

Kopiér H2 ned med fyldhåndtaget.
 #4  
26.05.2005, 17:47
Jørgen Bondesen
Hej Leo.

Bingo, tak.

Hej Tommy
Alt er relativt, men ja.
Mit formål var, at lærer SUMPRODUCT bedere, men det er en anden sag.
 #5  
26.05.2005, 18:51
Leo Heuser
Velbekomme, Jørgen :-)

LeoH

"Jørgen Bondesen" <bondesen> skrev i en meddelelse
news:t1k1
[..]
 #6  
27.05.2005, 21:32
Is
> =HVIS(TÆL.HVIS($A$2:$A$100;F2)=0;0; MAKS(HVIS(
> $A$2:$A$100=F2;$B$2:$B$100))-MAKS(HVIS($A$2:$A$100=F1;$B$2:$B$100)))
> Afsluttes med <Shift><Ctrl><Enter>, også hvis du redigerer
> formlen senere.


Hej Leo

Hvorfor det ? hvad sker der ved der ud over der sættes {} om formlen ??

Det er utroligt hvad men kan med formler, hvis man lige ved hvordan :-)

Jeg vil dog så sige, at jeg har valgt en anden løsning. Da jeg i forvejen
har lavet et døgnforbrug, har jeg ud fra den lavet et ugeforforbrug
 #7  
30.05.2005, 14:11
Leo Heuser
Hej Erik

"Is" <detteerminnewsmailadresse2> skrev i en meddelelse
news:6298
>> =HVIS(TÆL.HVIS($A$2:$A$100;F2)=0;0; MAKS(HVIS(
>> $A$2:$A$100=F2;$B$2:$B$100))-MAKS(HVIS($A$2:$A$100=F1;$B$2:$B$100)))
>> Afsluttes med <Shift><Ctrl><Enter>, også hvis du redigerer
>> formlen senere.


> Hej Leo
> Hvorfor det ? hvad sker der ved der ud over der sættes {} om formlen ??


Når man bruger <Shift><Ctrl><Enter> fortæller man Excel, at formlen
skal beregnes som en matrixformel.

Her er lidt forklaring, som jeg tidligere har sendt i gruppen.

Forklaringen sker ud fra følgende matrixformel:

Citat start<<<<<<<<<<<<<<<<<<<<<<<<<

=INDEKS(Ark1!$B$3:$B$12;MIN(HVIS((Ark1!$A$3:$A$12= "+")*
(TÆL.HVIS($A$1:A1;Ark1!$B$3:$B$12)=0);RÆKKE($A$2:$ A$10)-RÆKKE$A$2)+1;70000)))

En matrixformel arbejder med et celleområde i stedet for en enkelt celle.
Man kan programmeringsmæssigt betragte det som en FOR...NEXT løkke.
Hvis formlen er indtastet i ark2 A2, vil den udregningsmæssigt blive udført
10 gange.

1. gang:
=INDEKS(Ark1!$B$3:$B$12;MIN(HVIS((Ark1!$A$3="+")*( TÆL.HVIS($A$1:A1;Ark
1!$B$3)=0);RÆKKE($A$2)-RÆKKE$A$2)+1;70000)))

2. gang
=INDEKS(Ark1!$B$3:$B$12;MIN(HVIS((Ark1!$A$4="+")*( TÆL.HVIS($A$1:A1;Ark
1!$B$4)=0);RÆKKE($A$3)-RÆKKE$A$2)+1;70000)))

3. gang
=INDEKS(Ark1!$B$3:$B$12;MIN(HVIS((Ark1!$A$5="+")*( TÆL.HVIS($A$1:A1;Ark
1!$B$5)=0);RÆKKE($A$4)-RÆKKE$A$2)+1;70000)))

indtil
10. gang
=INDEKS(Ark1!$B$3:$B$12;MIN(HVIS((Ark1!$A$12="+")* (TÆL.HVIS($A$1:A1;Ark
1!$B$12)=0);RÆKKE($A$11)-RÆKKE$A$2)+1;70000)))

Udtrykket
(Ark1!$A$5="+")*(TÆL.HVIS($A$1:A1;Ark1!$B$5)=0)

består af to udsagn (Ark1!$A$5="+") og (TÆL.HVIS($A$1:A1;Ark1!$B$5)=0)

Hvert af disse udsagn kan enten være SANDT eller FALSK. I Excel *regneark*
regnes SAND som talværdien 1 (i VBA regnes det som -1) og FALSK som
talværdien 0 (nul)
HVIS-funktionen regnes for sand, når den er forskellig fra FALSK (nul).
Regnemæssigt er der altså fire muligheder med de to udsagn:

1*1 = 1
1*0 = 0
0*0 = 0
0*1 = 0

HVIS((Ark1!$A$12="+")*(TÆL.HVIS($A$1:A1;Ark1!$B$12 )=0);

er altså kun SAND, når begge udsagn er sande (1*1).
Lad os gå ud fra, at der findes et "+" i Ark1! A3, A5 og A7
og at Ark1! B3, B5 og B7 ikke findes i Ark2! A1:A1
HVIS-funktionen vil altså være SAND i disse 3 situationer,
og vi vil få 3 udregninger:
RÆKKE($A$3)-RÆKKE$A$2)+1 = 2
RÆKKE($A$5)-RÆKKE$A$2)+1 = 4
RÆKKE($A$7)-RÆKKE$A$2)+1 = 6

Disse tre tal vil blive sendt til MIN funktionen og resultatet bliver,
at MIN vil indeholde tallet 2. MIN-funktionen er altså med for
at gemme rækkenummeret på den "mindste" række, der opfylder betingelsen.

Med hensyn til spørgsmål 3:
Hvis du i Ark2 i B2 indsætter matrixformlen
=INDEKS(Ark1!$B$3:$C$12;MIN(HVIS((Ark1!$A$3:$A$12= "+")*(TÆL.HVIS($B$1:B1;Ark
1!$C$3:$C$12)=0);RÆKKE($A$2:$A$11)-RÆKKE($A$2)+1;70000));2)

og trækker ned vil den skrive værdierne fra Ark1!C3:C12, der ligger "over
for" plusset i kolonne A.

Citat slut>>>>>>>>>>>

>> Jeg tror også den øverste giver mig lidt kvaler ved årsskift ?


Kan du ikke starte et nyt år med en gentagelse af sidste års aflæsning,
og så kalde ugen for uge 0?

Med venlig hilsen
LeoH
 #8  
31.05.2005, 22:12
Is
> > Hej Leo
> > Hvorfor det ? hvad sker der ved der ud over der sættes {} om formlen ??

> Når man bruger <Shift><Ctrl><Enter> fortæller man Excel, at formlen
> skal beregnes som en matrixformel.
> Her er lidt forklaring, som jeg tidligere har sendt i gruppen.
> Forklaringen sker ud fra følgende matrixformel:
> Citat start<<<<<<<<<<<<<<<<<<<<<<<<< klip
> Citat slut>>>>>>>>>>>

 #9  
02.06.2005, 06:51
Leo Heuser
Velbekomme, Erik :-)
Lignende emner