Avatar billede kasperorso Juniormester
12. november 2019 - 10:14 Der er 10 kommentarer

Tæl, hvis match i to kolonner.

Hej alle.

I A kolonnen har jeg en række varenumre, der er bestemt af, om det er nogle vi har i sortimentet

I B kolonnen har jeg varenumre på alle varer, der er solgt (Selv om der er solgt 100 af en varer, vil varenummeret kun fremgå en gang)

Nu vil jeg gerne lave en formel, der tæller hvor mange match, der er i mellem A og B kolonnen, altså hvor mange af varenummerene er solgt min. én gang.

Hvilken formel, kan der bruges til dette?
Avatar billede acore Ekspert
12. november 2019 - 10:22 #1
=SUM(IF(COUNTIF(A1:A10;B1:B5)>0;1;0))

indtastet som matrix-formel - dvs afsluttet med ctrl-enter
Avatar billede acore Ekspert
12. november 2019 - 10:23 #2
Undskyld - afsluttet med ctrl-shift-enter selvfølgelig
Avatar billede kasperorso Juniormester
12. november 2019 - 10:32 #3
Mit excel står og tænker nu. Der er ret meget data.
Avatar billede kasperorso Juniormester
12. november 2019 - 10:38 #4
Er der en mindre ressourcekrævende formel? Jeg har ca. 350.000 rækker i den ene kolonne og 470.000 rækker i den anden.
Avatar billede acore Ekspert
12. november 2019 - 10:42 #5
Ups! Det er der helt sikkert.
En måde er at lave en hjælpekolonne i C med
=IF(COUNTIF($A$1:$A$10;B1)>0;1;0)
og så kopiere den ned i hele C kolonnen så længe der er data i B
Svaret fås så med
=SUM(C1:C350000)
eller hvad der nu skal til. Det er mindre krævende, vil jeg mene
Avatar billede kasperorso Juniormester
12. november 2019 - 10:43 #6
Sidder faktisk med præcis samme stunt og prøver det. Virker til, at det er lidt hurtigere.

Ser om det lykkedes :-)
Avatar billede acore Ekspert
12. november 2019 - 10:49 #7
Er helt sikkert hurtigere.

Hvis der ikke er dubletter i hverken A eller B, så prøv at lave formlen med henholdsvis A og B. Kan ikke lige gennemskue om en af dem er hurtigere end den anden.

Jeg kunne også forestille mig, at MATCH måske er hurtigere end COUNTIF (fordi den stopper med at lede, når den har fundet et match, mens COUNTIF tæller op)
Avatar billede kasperorso Juniormester
12. november 2019 - 12:24 #8
Det virker til at være en god løsning, ebea. Men grundet den store datamængde, kan jeg slet ikke få den til at blive færdig...

Jeg har fået 1 ud fra dem, der har match, men min sum formel vil ikke blive færdig. Den tager alt for lang tid om at udregne.
Avatar billede acore Ekspert
12. november 2019 - 13:07 #9
Prøv at læse http://www.exceluser.com/blog/727/excels-fastest-lookup-methods-the-tested-results.html - den er god at blive klog af.

På baggrund af den - prøv med en hjælperække i C med

=IF(VLOOKUP(B1;$A$1:$A$800000;1)=B1;1;0)

og så tæl sammen med SUM

Det kører på kort tid her (afprøvet med +800.000/+600.000 rækker)
Avatar billede acore Ekspert
12. november 2019 - 13:08 #10
Glemte at skrive, at du skal sortere data i kolonne A først. Det er det, der gør lookup hurtig.
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