Avatar billede Martin_34_2 Nybegynder
06. november 2012 - 11:07 Der er 9 kommentarer og
1 løsning

Tæl unikke værdier hvis betingelser er opfyldt

Hejsa,

Jeg sidder med Excel 2010, på engelsk.
Jeg vil gerne have en formael der kan hjælpe mig med følgende lille udfordring.

Jeg har understående lille udtræk, hvor jeg gerne vil tælle hvor mange unikke værdier der er i kolonne A, hvis kolonne B=01, kolonne C=DK, kolonne D=22 og kolonne E=yes.
Tællene i kolonne a går igen, men jeg vil kun tælle dem med en gang, og kun hvis alle 4 betingelser er opfyldt.

Delivery no.=A
Delivery status=B   
Country    =C
Orderline status=D   
Is planned date before today?=E

  A    B      C      D      E
906951    01    NO    22    No
860401    02    SE    22    No
802057    02    SE    22    No
885656    02    SE    22    No
921432    01    DK    22    No
913123    01    FI    22    No
914955    01    NO    22    No
885415    02    SE    22    No
900358    01    NO    22    No
914739    01    SE    22    No
842658    05    NO    33    Yes
842658    05    NO    22    Yes
891892    02    NO    22    No
842658    05    NO    33    Yes
842658    05    NO    33    Yes
853979    02    SE    22    No
888688    02    SE    22    No
932638    01    NO    22    No
931741    01    SE    22    No
910786    02    SE    22    No
916469    01    NO    22    No
896629    01    NO    22    No
879490    02    DK    22    No
902582    02    SE    22    No
858404    05    DK    33    Yes
858404    05    DK    33    Yes
916235    01    NO    22    No
858404    05    DK    33    Yes
858404    05    DK    33    Yes
858404    05    DK    33    Yes
913123    01    FI    22    No
858404    05    DK    33    Yes
902362    02    SE    22    No
927493    02    NO    33    Yes
858404    05    DK    33    Yes
914955    01    NO    22    No
853979    02    SE    22    No
853979    02    SE    22    No
892275    02    SE    22    No
904063    01    DK    22    No
934213    01    NO    22    No
909565    01    NO    22    No
853979    02    SE    22    No
853979    02    SE    22    No


Kan man det?
Avatar billede Mads Larsen Nybegynder
06. november 2012 - 13:02 #1
Jeg kunne ikke lige få en formel til at klare dette problem (Afviser ikke at det kan lade sig gøre)

Men her ihver fald VBA som kunne gøre det..

Private Sub TælUnikke()
'Delivery no.=A
'Delivery Status = B
'Country = C
'Orderline Status = D
'Is planned date before today?=E

DS = "01"
C = "DK"
OS = "22"
IPDBT = "Yes"

Dim ResultatCelle As Range
Set ResultatCelle = Range("G1")

iAlt = 0
IndsætIArray = 0
Dim TjekUnikArr(1000)
Range("A1").Select
Do Until Len(ActiveCell.Text) = 0
    If ActiveCell.Offset(0, 1).Text = DS Then
        If ActiveCell.Offset(0, 2).Text = C Then
            If ActiveCell.Offset(0, 3).Text = OS Then
                If ActiveCell.Offset(0, 4).Text = IPDBT Then
                    ErDenneUnik = True
                    For i = 0 To UBound(TjekUnikArr) Step 1
                        If TjekUnikArr(i) = ActiveCell.Text Then
                            ErDenneUnik = False
                            Exit For
                        End If
                    Next
                   
                    If ErDenneUnik = True Then
                        TjekUnikArr(IndsætIArray) = ActiveCell.Text
                        IndsætIArray = IndsætIArray + 1
                        iAlt = iAlt + 1
                    End If
                End If
            End If
        End If
    End If
    ActiveCell.Offset(1, 0).Select
Loop
ResultatCelle = iAlt
Range("A1").Select
End Sub
Avatar billede PBChristensen Juniormester
06. november 2012 - 15:17 #2
Hej Martin,

Kan du bruge dette til noget:

=SUMPRODUCT(($B$1:$B$199=1)*($C$1:$C$199="DK")*($D$1:$D$199=22)*($E$1:$E$199="Yes"))
Avatar billede Martin_34_2 Nybegynder
07. november 2012 - 11:03 #3
Hej It Guffe,

Mit problem er at jeg er meget begrænset i min viden omkring VBA, og har ikke tiden til og sætte mig ind i dette pt.
Jeg har allieret mig med en der kan lidt VBA, hvis ikke jeg skulle kunne få dette løst via en formel.
Avatar billede Martin_34_2 Nybegynder
07. november 2012 - 11:07 #4
hej PBCChristensen,

Den formal du har skrevet her, får jeg kun til og tælle alle de forkomster der er(hvor mange linjer er der hvor kravene er opfyldt, men fjerne ikke gentagelser fra summen), og ikke kun de unikke værdier der er.

Hvad gør jeg forkert?
Avatar billede anedi Ekspert
07. november 2012 - 14:45 #5
Du kan i kollonne F indsætte følgende:

=COUNTIFS(A:A;A1;B:B;B1;C:C;C1;D:D;D1;E:E;E1)

Herefter kan du sortere arket på baggrund af kollonne C og herefter A.

Vh
Anedi
Avatar billede PBChristensen Juniormester
07. november 2012 - 15:07 #6
=SUMPRODUCT(($B$1:$B$199=1)*($C$1:$C$199="DK")*($D$1:$D$199=22)*($E$1:$E$199="Yes")/COUNTIF($A$1:$A$199;A1:A199&""))

Den er lavet i den danske version, og 'oversat' bagefter - men det kan være at du skal bruge denne istedet:

=SUMPRODUCT(($B$1:$B$199=1)*($C$1:$C$199="DK")*($D$1:$D$199=22)*($E$1:$E$199="Yes")/COUNTIF($A$1:$A$199,A1:A199&""))
Avatar billede Martin_34_2 Nybegynder
08. november 2012 - 09:18 #7
Hej Anedi,

Tak for forslaget.
Jeg kan desværre ikke rigtig bruge det, jeg har brug for en formel der tæller op på mængden ud fra kriterierne, og dette skal vises i et felt.
Årsagen er at de data der tælles op på variere hele tiden. Brugeren skal ikke til og bruge filter til og finde frem til resultatet.
Beklager jeg ikke var klar nok i min oprindelige forklaring.
Avatar billede Martin_34_2 Nybegynder
09. november 2012 - 11:29 #8
Hej PBChristensen,

Den Virker:)

Jeg har dog et mindre problem, hver gang jeg bruger den på mine originale data, går Excel ned med et brag. Der er lige pt 127455 rekords, og det er for mange til Excel.

Du får point, men jeg vil lige oprette en anden tråd, for og se om der er nogle der kan komme med en løsning der ikke er for hård ved Excel.

Mange tak for hjælpen:)
Avatar billede Martin_34_2 Nybegynder
09. november 2012 - 11:32 #9
IT-Guffe,

Mit problem med VBA, er at firmaet jeg arbejder for er ikke glad for VBA, og vores it afdelings forstand på VBA er god nok til at de kan sige god for dette. (Vi bruger ikke VBA til dagligt)

Jeg antager selvfølgelig ikke at der er noget galt med den kodning du har lavet, men har blot ikke tilladelse til og bruge den, beklager.

Tak for forsøget.
Avatar billede Mads Larsen Nybegynder
09. november 2012 - 11:39 #10
Sådan er det jo nu til dags ;-)

Dog som du skriver at du har over 100k rekords, så ville den nok også tage hårdt på Excel når den blev kørt ;)
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