COUNT (DISTINCT . . .) in MS Excel

Ramki

Benutzer
Beiträge
8
Liebe Foren-Mitglieder,

ich habe eine Datenbank mit Verkaufsdaten. Jeder Kunde kauft diverse Materialien. Ich möchte
gerne eine Eindeutige (distinct) Kundenliste abrufen und dahinter die Anzahl verschiedener Materialien
pro Kunde ausgeben.
Wie ich unzwischen geleden habe, unterstützt Excel wohl die Anweisung 'COUNT (DISTINCT ...) nicht.

SELECT [Customer Name], COUNT (DISTINCT [Material Name])
from [Base Data$]
Group By [Customer Name]

Im MS SQL Server funktioniert das, in Excel nicht. Das kennt wohl nur 'AS TOTAL COUNT from ...'

Daher habe ich jetzt folgendes versucht, dass aber auch nicht so richtig funktionieren will. Irgendwo
mache ich da noch einen Fehler. Sorry, bin ziemlicher Anfänger. Wäre toll, wenn jemand einen Tipp
für mich hat.

SELECT DISTINCT [Customer Name], COUNT ([Material Number]) AS TotalCount
from (SELECT DISTINCT [Material Number] from [Base Data$]) AS A
Group By [Customer Name]

Es kommt die Fehlermeldung: "1 Parameter wurde erwartet, aber es wurden zu wenig Parameter
übergeben.

Vielen Dank für Eure Hilfe,
Gruß, Ramki
 
Werbung:
Hallo zusammen,

gemeinsam mit einem Kollegen haben wir die Lösung gefunden. So geht's:

SELECT a.[Customer Name],
COUNT (a.[Material Number])
from (SELECT DISTINCT [Customer Name], [Material Number] from [Base Data$]) a
Group By [Customer Name]

Gruß, Ramki
 
Hallo,
leider habe ich mich zu früh gefreut. Die Materialien werden nicht korrekt gezählt.

Meine Abfrage sieht wie folgt aus. Als Ergebnis hätte ich gerne die Top 20 Kunden auf Basis 'NetSales' im Januar 2016,
die Anzahl verschiedener Materialien, sowie die Summe des entsprechenden NetSales.
Also 3 Spalten, CustomerName -- Anzahl Materialien -- NetSales, alles bezogen auf die Bedingungen in der Where-Klausel.
Das mit dem Umsatz scheint auch okay zu sein. Die Anzahl der ausgeworfenen Materialien ist allerdings viel zu hoch,
entspricht eher der Anzahl der einzelnen Datensätze, nicht jedoch der verschiedenen Materialien.

Wie gesagt, Count(distinct [MaterailNumber]} geht in Excel leider nicht. Es muss irgendwie über eine Subquery oder so
funktionieren. Aber ich krieg'd nicht hin. Könnt Ihr mir bitte 'nen Tipp geben?

Vielen Dank, Gruß,
Ramki

SELECT Top 20 a.[CustomerName],
COUNT(a.[MaterialNumber]),
SUM(a.[NetSales])

from (SELECT DISTINCT [CustomerName], [MaterialNumber], [NetSales] from [Base Data$]
where KeyFigure = ('ActualSales') and Year = ('2016') and Month = ('1') )a

GROUP BY [CustomerName]
ORDER BY Sum([NetSales]) desc
 
Werbung:
Code:
SELECT   TOP 20
     t.[CustomerName],
     (   SELECT   count(*)
       FROM   (   SELECT   DISTINCT
                 [MaterialNumber]
             FROM   [Base Data$]
             WHERE   KeyFigure = ('ActualSales')
             AND     Year = '2016'
             AND     Month = '1'
             AND     [CustomerName] = t.[CustomerName] ) a ) AS [MaterialNumber],
     t.[NetSales]
FROM   (

SELECT   [CustomerName],
     [MaterialNumber],
     sum(a.[NetSales]) AS [NetSales]
FROM   [Base Data$]
WHERE   KeyFigure = ('ActualSales')
AND     Year = '2016'
AND     Month = '1'
GROUP BY [CustomerName]

     ) t
ORDER BY t.[NetSales] DESC
Geht das?
 
Zurück
Oben