Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 2/2013.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Lernen Sie verschiedene Möglichkeiten kennen, um mit Access ABC-Analysen durchzuführen.

Techniken

Abfragen, VBA

Voraussetzungen

Access 2000 und höher

Beispieldateien

ABCAnalyse.mdb

Shortlink

www.access-im-unternehmen.de/875

Abfragen zur ABC-Analyse

André Minhorst, Duisburg

Mit einer ABC-Analyse teilen Sie verschiedene Objekte in die drei Klassen A, B und C auf. Bei diesen Objekten kann es sich beispielsweise um Kunden, Kundengruppen, Produkte oder auch Produktgruppen handeln. Im Mittelpunkt steht jedoch meist der Umsatz des Objekts beziehungsweise der Gruppe von Objekten. Die Aufteilung erfolgt nach Wertanteilen der ermittelten Werte am Gesamtwert. Wie Sie dies mit Access anstellen, zeigt der vorliegende Beitrag.

Technisch betrachtet verläuft eine ABC-Analyse wie folgt: Sie summieren die Umsätze der einzelnen Kunden, sortieren diese absteigend, ermitteln den prozentualen Anteil am Gesamtumsatz und kumulieren diesen Wert dann in einer weiteren Spalte.

Schließlich gruppieren Sie die Kunden nach den kumulierten Prozentwerten entsprechend den gewünschten Grenzen für die Gruppen A, B und C. Beispiele für solche Grenzen sind 80% für Gruppe A, 15% für Gruppe B und 5% für Gruppe C. Sie können jedoch auch 70%, 20% und 10% oder andere Kombinationen als Grenzwerte verwenden.

Auf der anderen Seite ermitteln Sie im nächsten Schritt, wie viele Kunden prozentual den drei Gruppen A, B und C angehören.

Zusammengefasst werden diese Zahlen dann in einem entsprechenden Diagramm angezeigt - mehr dazu im Beitrag Diagramme zur ABC-Analyse (www.access-im-unternehmen.de/881).

Beispieldaten

Die Beispieldaten stammen wieder einmal aus der Südsturm-Datenbank. Für dieses Beispiel benötigen wir daraus zunächst die Tabellen tblKunden, tblBestellungen und tblBestelldetails.

Technische Umsetzung

Im ersten Schritt erstellen wir eine Abfrage namens qryKundenNachUmsatz, welche die Umsätze der einzelnen Kunden summiert und diese absteigend nach dem Umsatz sortiert (s. Abb. 1). Diese Abfrage enthält die drei Tabellen tblKunden, tblBestellungen und tblBestelldetails. Aus der Tabelle tblKunden benötigen wir nur die Felder KundeID und Firma.

pic001.png

Abb. 1: Abfrage zum Ermitteln der Umsätze

Die Tabelle tblBestellungen sorgt lediglich dafür, dass die Bestellpositionen den einzelnen Kunden zugeordnet werden können. Die Tabelle tblBestellpositionen liefert die Felder zur Berechnung des Umsatzes einer jeden Bestellposition: Einzelpreis, Anzahl und Rabatt.

Der Umsatz wird aus diesen drei Feldern mit folgender Formel ermittelt:

Umsatz: [Einzelpreis]*[Anzahl]*(1-[Rabatt])

Damit die Abfrage nicht jede einzelne Position ermittelt, sondern diese gleich zum Gesamtumsatz der einzelnen Kunden summiert, aktivieren Sie die Anzeige der Zeile Funktion des Abfrageentwurfs (Klick mit der rechten Maustaste in das Entwurfsraster, dann Auswahl des Kontextmenüeintrags Summen).

Für die beiden Spalten KundeID und Firma können Sie den Standardwert Gruppieren in der Zeile Funktionen beibehalten. Der Inhalt des Feldes Umsatz soll hingegen summiert werden, daher legen Sie dafür den Wert Summe fest. Schließlich stellen Sie in der Zeile Sortierung für die Spalte Umsatz den Wert Absteigend fest. Der Wechsel in die Datenblattansicht der Abfrage liefert das Ergebnis aus Abb. 2 - die Umsätze werden summiert und in der richtigen Reihenfolge angezeigt.

pic002.png

Abb. 2: Umsatzsummen in absteigender Reihenfolge

Prozentualer Anteil

Nun benötigen wir den prozentualen Anteil des Umsatzes am Gesamtumsatz. Also fügen wir der Abfrage ein weiteres berechnetes Feld hinzu. Dieses soll den Inhalt des Feldes Umsatz durch den gesamten Umsatz aller Kunden dividieren. Der besseren Übersichtlichkeit halber fügen wir in einer weiteren Spalte zunächst ein Feld namens Gesamtumsatz ein, das die folgende Berechnungsformel verwendet:

Gesamtumsatz: DomSumme("Einzelpreis*Anzahl*(1-Rabatt)";"tblBestelldetails")

Hier kommt also eine Domänenfunktion zum Einsatz, welche die Summe der Umsätze aller Datensätze der Tabelle tblBestelldetails ermittelt. Diese Spalte versehen Sie in der Zeile Funktion wiederum mit dem Eintrag Gruppierung. In dieser Abfrage bringen wir nun noch den prozentualen Anteil des Umsatzes des aktuellen Kunden am Gesamtumsatz unter. Dazu verwenden Sie die folgende Berechnungsformel:

ProzentVomGesamtumsatz: [Einzelpreis]*[Anzahl]*(1-[Rabatt])/[Gesamtumsatz]

Hier greifen wir wieder auf die Formel zurück, die wir bereits zum Summieren des Umsatzes je Kunde verwendet haben. Legen Sie für dieses Feld wieder den Wert Summe in der Zeile Funktion fest, damit die Werte je Gruppe (also je Kunde) summiert werden - das Ergebnis zeigt Abb. 3.

pic003.png

Abb. 3: Umsätze mit Gesamtumsatz und prozentualem Anteil am Gesamtumsatz

Warum aber nutzen wir nicht einfach den Namen des bereits berechneten Ausdrucks, also Umsatz statt [Einzelpreis]*[Anzahl]*(1-[Rabatt])? Normalerweise funktioniert das, aber nicht in Abfragen mit Gruppierungen. Hier gibt es nur zwei Möglichkeiten: Entweder Sie geben den kompletten Ausdruck nochmals an (wie in diesem Beispiel) oder Sie verwenden eine erste Abfrage, die den Ausdruck ermittelt und benennt, und erstellen dann eine zweite Abfrage, welche diesen Ausdruck mit dem entsprechenden Namen weiterverwendet.

Prozente kumulieren

Nun wollen wir in einer weiteren Spalte die Prozentwerte kumulieren, um zu ermitteln, wie viele der umsatzstärksten Kunden nötig sind, um beispielsweise 80% des Umsatzes abzudecken, und wieviele die folgenden 15% und die letzten 5% bedienen. Diese sollen dann auch noch in die drei Gruppen A, B und C einsortiert werden.

Das Ergebnis soll schließlich wie in Abb. 4 aussehen. Die vorletzte Zeile heißt Kumuliert und kumuliert alle bisherigen prozentualen Anteile am Umsatz auf. Die letzte Zeile heißt Gruppe und liefert die Werte A, B und C.

pic004.png

Abb. 4: Kumulierte prozentuale Anteile und Einteilung in Gruppen

Diese Abfrage heißt qryABCDynamisch und verwendet die bereits erstellte Abfrage qryKundenNachUmsatz als Datenherkunft (s. Abb. 5). Ziehen Sie die drei Felder Firma, Umsatz und ProzentVomGesamtumsatz in das Entwurfsraster der Abfrage.

pic005.png

Abb. 5: Neue Abfrage, die auf der Abfrage qryKundenNachUmsatz basiert und zwei weitere Felder hinzufügt.

Dann fügen Sie zwei neue Felder hinzu, die wiederum berechnete Ausdrücke sind. Das erste Feld namens Kumuliert bedarf einer Erläuterung, denn dieses enthält eine Unterabfrage. Diese verwendet wiederum die Abfrage qryKundenNachUmsatz als Datenherkunft - also genau wie die Hauptabfrage qryABCDynamisch.

Da wir die Datensätze der Haupttabelle und der Untertabelle anhand des Feldes ProzentVomGesamtumsatz abgleichen möchten (wie genau, erfahren Sie gleich im Anschluss), müssen wir eine der beiden Instanzen dieser Abfrage mit einem alternativen Namen versehen, in diesem Falle t1 für die Datenherkunft der Unterabfrage.

Die Unterabfrage liefert die Summe des Werts des Feldes ProzentVomGesamtumsatz für alle Datensätze der Unterabfrage (hier t1 genannt), deren Feld ProzentVomGesamtumsatz einen Wert enthält, der größer oder gleich dem Wert dieses Feldes des aktuellen Datensatzes der Hauptabfrage ist. Abb. 6 verdeutlicht diesen Zusammenhang: Sie zeigt die Haupt- und die Unterabfrage der Abfrage qryABCDynamisch. Dabei wird etwa dem ersten Datensatz die Summe aller Werte des Feldes ProzentVomGesamtumsatz der Unterabfrage t1 hinzugefügt, deren Wert größer oder gleich dem aktuellen Wert in der Hauptabfrage qryKundenNachUmsatz ist - und dies entspricht lediglich dem ersten Datensatz von t1. Für den vierten Datensatz hingegen liefert die Unterabfrage bereits die Summe der Werte des Feldes ProzentVomGesamtumsatz für alle Datensätze, deren Prozentsatz größer oder gleich dem Wert des Feldes ProzentVomGesamtumsatz des vierten Datensatzes der Abfrage qryKundenNachUmsatz ist.

pic006.png

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.