Avatar billede laban1977 Nybegynder
02. december 2010 - 15:33 Der er 11 kommentarer og
1 løsning

SUMIF(?) der skal se i 2 kolonner

(Excel 2003)

Vil tro mit problem skal løses med SUMIF men kan ikke få det til at lykkes, da der er 2 kriterier. Andre løsninger af problemet er også ok, men løsningen skal kunne tastes som en formel i den pågældende celle (her C8) og der må ikke anvendes "mellemstationer" i andre kolonner.

Formlen i Celle C8 skal summere tallene i kolonne C for de linier hvor der både står x (=celle A1) i kolonne A & y (=celle B1) i kolonne B

Dvs. i dette ark skal formlen give 1122

    A  B  C 
1  x  y 
2
3  a  y  1
4  x  y  11
5  x  t  111
6  x  y  1111
7  y  x  11111
8          =1122 (11+1111)

Håber hajerne kan hjælpe :o)

/Laban77
Avatar billede ae03 Novice
02. december 2010 - 15:58 #1
SUM.HVIS/SUMIF kan kun klare et kriterium, men prøve nedenstående. Vil tro, at den hedder sumproduct på engelsk.

=SUMPRODUKT((A1:A7="x")*(B1:B7="y")*(C1:C7))
Avatar billede laban1977 Nybegynder
03. december 2010 - 09:52 #2
Det virker desværre ikke...
Avatar billede ae03 Novice
03. december 2010 - 10:26 #3
Hmm... Det virker fint hos mig i både 2003 og 2007. Begge versioner er danske, men hvis du bare skriver sumproduct i stedet for sumprodukt, kan jeg ikke se nogen grund til, at det ikke skulle virke på engelsk.
Avatar billede laban1977 Nybegynder
03. december 2010 - 10:27 #4
Kan se der virker på eksemplet - grunden til at det ikke virkede på min "rigtige" fil var, at der i nogle celler i kolonne C står tekst. Der står kun tal i de celler der reelt skal sammentælles, men den kan alligevel ikke anvendes.

Men svaret var korrekt, så du kan få point.

Tak

/Laban77
Avatar billede ae03 Novice
03. december 2010 - 11:52 #5
Den kan jeg ikke lige gennemskue at løse med sumprodukt. I Excel 2007 kan du bruge sum.hviser, men det går ikke i 2003. Hvis jeg ændrer sidste led i sumproduktet til er.tal(c1:c7), returnerer den sand (1) eller falsk (0) i stedet for værdien, så resultatet af hele produktet bliver 2. Har forsøgt med et par hvis-sætninger, men så får jeg fejl.
Lad spørgsmålet stå åbent lidt. Det kan være, at en af superhajerne kan ændre mit forslag, så sidste led i sumproduktet med er.tal(c1:c7) returnerer værdien i stedet for sandt eller falsk.
Avatar billede Slettet bruger
03. december 2010 - 12:21 #6
Hvad med:
=SUMPRODUCT(--(A1:A5="x");--(B1:B5="y");C1:C5)

(SUMPRODUKT hvis dansk)
Avatar billede ae03 Novice
03. december 2010 - 12:43 #7
Den virker fint, også med tekst i kolonne C. Hvorfor? Hvad gør '--'?

Laban77: Gi' pointene til Hans. Dem har han fortjent, ikke mindst fordi det er ham, der har lært mig at anvende sumprodukt i den form, som jeg foreslog. ;-)
Avatar billede laban1977 Nybegynder
03. december 2010 - 12:56 #8
@dkhanknu

Det virker - det eneste der irriterer nu er, at jeg ikke helt forstår formlen :o) - hvad betyder det når du skriver -- ? er det en information om, at formlen kun skal sammentælle tal eller?

/Laban
Avatar billede Slettet bruger
03. december 2010 - 14:18 #9
Med:
a    y    1
x    y    11
x    t    a
x    y    1111
y    x    1111

i A1:C5 og formlen:
=SUMPRODUCT(--(A1:A5="x");--(B1:B5="y");C1:C5)
i for eksempel C8, prøv følgende:

Væklg celle C8 og marker med musen (i formelfeltet) præcist følgende del af formlen:

(A1:A5="x")og tryk på F9. Du vil se følgende:
{FALSE;TRUE;TRUE;TRUE;FALSE}

Prøv nøjagtigt det samme med præcist følgende del af formlen:
(B1:B5="y") og tryk på F9. Du ser nu følgende:
{TRUE;TRUE;FALSE;TRUE;FALSE}

Prøv herefter samme procedure, men nu med følgende dele af formlen, henholdsvis:
--(A1:A5="x") og
--(B1:B5="y")

Ved tryk på F9 ved den første ser du:
{0;1;1;1;0}
og ved den anden:
{1;1;0;1;0}

Altså, -- (double unary minus) konverterer booleske værdier (TRUE/FALSE) til 1/0. Det har en vis lighed med matematikkens minus gange minus giver plus.

Af de to arrays oven for, henholdsvis {0;1;1;1;0} og {1;1;0;1;0}
danner Excel et enkelt array {0;1;0;1;0} altså 1 i matricens position 2 og 4 (hvor begge betingelser er opfyldte, 0 i de
øvrige positioner. Det vil herefter sige at formlen returnerer det der står i 2. og 4. position i matricen C1:C5.

Se herefter på formlen:
=SUMPRODUCT((A1:A5="x")*(B1:B5="y")*(C1:C5))

Prøv med musen (i formelfeltet) at markere præcist følgende del af formlen:

((A1:A5="x")*(B1:B5="y")

Tryk på F9 og du vil se:
{0;1;0;1;0}
altså nøjagtig samme matrice som ovenfor. Der hvor det så går galt, det er når denne matrice ganges med matricen C1:C5, men man kan som bekendt ikke gange et tal med noget tekst (som i C3) og få noget fornuftigt ud af det.

Hans
Avatar billede Slettet bruger
03. december 2010 - 14:23 #10
Et par småfejl:
Jeg kom et par steder til at bruge det engelske udtryk "arrays". Erstat det med det danske "matrice.
Der var en begyndelsesparentes for meget i udtrykket seks linjer fra neden.
Avatar billede laban1977 Nybegynder
03. december 2010 - 14:39 #11
Imponeret!  - og mange mange tak for at du også tog dig tid til den lange forklaring!.

Hvis du laver et svar giver jeg dig pointene.
Avatar billede Slettet bruger
03. december 2010 - 14:51 #12
OK
Hans
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
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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