Avatar billede busschou Praktikant
31. juli 2009 - 08:40 Der er 2 kommentarer

Avancerede indlejrede funktioner / matrix funktioner fortsat

http://www.eksperten.dk/spm/880719

Jeg var lidt hurtig til at acceptere oleelo´s svar som dog dækkede 90% af mine tilfælde

A            B
01-04-2007    100
01-01-2008    -100
01-01-2008    -100
01-01-2008    0
02-02-2008    100
02-02-2008    200
02-02-2008   
03-03-2008   
03-03-2008   
03-03-2008   
04-04-2008    0
04-04-2008    0
01-01-2009    100

Jeg vil gerne have summen i kolonne B ud for en given dato i kolonne A men den må ikke tælle blanke celler med i kolonne B
SUM(01-01-2008) skal give -200
SUM(02-02-2008) skal give 300
SUM(03-03-2008) skal give "" (altså ingen ting)
SUM(04-04-2008) skal give 0

Det svar jeg fik var at bruge matrix funktioner og det virker stort set... det tager dog ikke forbehold for det tilfælde hvor summen af tre blanke felter skal give "" altså blank.
Det giver meget god mening at en sum returnerer 0 nul i det tilfælde men er der nogen mulighed for at omgå det?
Bemærk jeg kan ikke bare lave en HVIS/IF som tjekker om feltet er nul og så erstatter med blank for der er tilfælde hvor jeg ønsker nul og tilfælde hvor jeg ønsker blank.
Eneste tilfælde hvor summen skal returnere blank og ikke den reelle sum er hvis alle de summerede felter er blanke.
Hvis bare en af dem indeholder en værdi eller nul så skal den returnere summen som så godt kan være nul.

Nogen ideer eller er det håbløst?
Avatar billede busschou Praktikant
31. juli 2009 - 08:42 #1
Skal lige sige at jeg ikke har problemer med at lave det i VB kode selv men at jeg ønsker at benytte så mange indbyggede funktioner som muligt hvorfor en given løsning skal være ved brug af sådanne
Avatar billede natkatten Mester
31. juli 2009 - 12:43 #2
Jeg bruger stort set altid SUMPRODUKT til beregninger af den slags, som du opererer med.

Problemet med den anden del af dit spørgsmål er (som du jo nok ved), at Excel som standard fortolker en tom celle som nul (0), ikke som værende tom eller blank. Derfor skal der findes en måde, hvorpå man kan "snyde" Excel. Og jeg ved ikke lige, hvordan du kan få en 100% løsning uden at bruge VBA. Men det kan andre måske?

Kan man leve med at der ikke skrives noget i resultatet, hvis der er et nul eller en blank værdi, så fungerer denne formel:

=HVIS(SUMPRODUKT(($A$1:$A$13=$A16)*($B$1:$B$13))=0;"";SUMPRODUKT(($A$1:$A$13=$A16)*($B$1:$B$13)))

Kort forklaring:

Fra A16 og ned findes de datoer, som skal have summeret værdierne. Formlerne placerer så i B16 og ned.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester