CiAgICA8IS0tIExpbmtlZEluIC0tPgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgIF9saW5rZWRpbl9wYXJ0bmVyX2lkID0gIjEyMzUwNzMiOwogICAgICAgIHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyA9IHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyB8fCBbXTsKICAgICAgICB3aW5kb3cuX2xpbmtlZGluX2RhdGFfcGFydG5lcl9pZHMucHVzaChfbGlua2VkaW5fcGFydG5lcl9pZCk7CiAgICA8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgKGZ1bmN0aW9uKCl7dmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07CiAgICAgICAgICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgICAgIGIudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiO2IuYXN5bmMgPSB0cnVlOwogICAgICAgICAgICBiLnNyYyA9ICJodHRwczovL3NuYXAubGljZG4uY29tL2xpLmxtcy1hbmFseXRpY3MvaW5zaWdodC5taW4uanMiOwogICAgICAgICAgICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsIHMpO30pKCk7CiAgICA8L3NjcmlwdD4KICAgIDxub3NjcmlwdD4KICAgICAgICA8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBhbHQ9IiIgc3JjPSJodHRwczovL3B4LmFkcy5saW5rZWRpbi5jb20vY29sbGVjdC8/cGlkPTEyMzUwNzMmZm10PWdpZiIgLz4KICAgIDwvbm9zY3JpcHQ+CiAgICA8IS0tIEVuZCBMaW5rZWRJbiAtLT4KICAgIA==
Generic filters
Exact matches only
Search in title
Search in excerpt
Search in content

Ermittlung dynamisch relativer Anteile

Einleitung

Mathematisch gesehen beschreibt ein Anteil das Größenverhältnis zweier Werte zueinander. Für zwei Kennzahlen in einem BI-System gilt dasselbe. Einen Anteil mit DeltaMaster zu berechnen, ist normalerweise sehr einfach (siehe Bildung von Verhältniskennzahlen – Punkt 4).

In einigen Fällen kann es jedoch vorkommen, dass der direkte logische Zusammenhang zwischen den zwei Kennzahlen auf einer höheren oder aggregierten Ebene nicht mehr gegeben ist. Das kann dann auftreten, wenn die Elemente nicht alle einen Bezug zu beiden Kennzahlen besitzen.

Theoretisch könnte dieses Problem auch durch eine Strukturänderung im Modell angegangen werden. Damit der Anteil einer Kennzahl an einer zweiten auch auf der aggregierten Ebene richtig berechnet wird, dürften in der Ebene nur die Elemente vorkommen, deren Bezug zu beiden Kennzahlen in derselben Weise gegeben ist.

Für die Fälle, in denen eine Modelländerung nicht gewünscht ist oder zu aufwändig wäre, lassen Sie mich Ihnen im Folgenden eine Vorgehensweise am Beispiel eines Automobilhändlers aufzeigen.

Erläuterung der Problematik an einem Beispiel

Der Automobilhändler „Cars Unlimited“ möchte neben seinen Umsätzen, welche er in den verschieden Sparten erzielt hat, die Rabatte anzeigen, welche seine Verkäufer den Kunden gewährt haben.

Abbildung 1: Kennzahlen Umsatz und Rabatt

Als dritte Kennzahl möchte er den Anteil des Rabatts am aktuellen Umsatz ausweisen.

Abbildung 2: Berechnete Kennzahl Rabattanteil

In jeder Zeile wird der Rabattanteil korrekt berechnet. Auf der aggregierten Ebene „Alle Sparten“, welche die Summe der einzelnen Elemente darstellt, ist der Anteil rein rechnerisch zwar auch richtig, aber semantisch falsch.

In dem gezeigten Beispiel werden die durch Vermietung der KFZ erzielten Umsätze nicht rabattiert. Daher dürfte dieser Teil des Gesamtumsatzes bei der Ermittlung des Rabattanteils nicht berücksichtigt werden. Die Formel für die Ermittlung des Rabattanteils in der Zeile „Alle Sparten“ müsste daher korrekt lauten:

Rabatt(Alle Sparten) / ( Umsatz(Alle Sparten) – Umsatz(Vermietung) )

Lösung mittels Cubescript

Mit dieser Formel kann im OLAP-Cube die Berechnung des Rabattanteils an der entsprechenden Stelle überschrieben werden.

Da das Cubescript die in DeltaMaster (Frontend) berechneten Kennzahlen noch nicht kennt, ist es bei dieser Vorgehensweise unerlässlich, die Kennzahl auch bereits im Cubescript mit ihrer Standardberechnungsformel anzulegen.

Danach kann dann die entsprechende Stelle im Cube definiert werden, für die eine besondere Formel gilt und nicht die Standardberechnungsformel. Das Cubescript könnte ähnlich dem folgenden Beispiel aussehen:


--neue Kennzahl: Rabattanteil in %
CREATE MEMBER CURRENTCUBE.[Measures].[Rabattanteil in %]
    AS IIF ( [Measures].[Umsatz] = 0, NULL, [Measures].[Rabatt] / [Mea-sures].[Umsatz] ),
NON_EMPTY_BEHAVIOR = { [Umsatz] },
VISIBLE = 1,
ASSOCIATED_MEASURE_GROUP = 'Umsätze';

-- bei der Berechnung des Rabattanteils auf der Ebene  muss der Umsatzanteil der Vermietung 
-- erst abgezogen werden, da dieser nicht rabattiert wird
SCOPE (
    [Measures].[Rabattanteil in %],
    [Sparte].[Sparte].[Alle Sparten]
);
    THIS = [Measures].[Rabatt] / (
                [Measures].[Umsatz] - ( [Measures].[Umsatz], [Spar-te].[Sparte].[Sparte].&[Vermietung] )
            );
END SCOPE;

Die im Cubescript erzeugte Kennzahl (mit ihrer Ausnahme) steht DeltaMaster dann sauber gekapselt als Simple Measure zur Verfügung.

Abbildung 3: Anzeige der Kennzahl aus dem Cubescript in DeltaMaster

Bildung von Verhältniskennzahlen mit DeltaMaster

Im Analysewert-Browser kann über das Menü „Ich möchte…“ – „Neuen Analysewert anlegen…“ ein neuer Analysewert erstellt werden.
Soll dieser Analysewert einen Anteil darstellen, so wird als Analysewerttyp ein Quotientenwert gewählt.

Abbildung 4: DeltaMaster Menü – Neuen Analysewert anlegen

Analysewerttyp Quatientenwert zur Berechnung von Anteilen

Abbildung 5: Analysewerttyp Quotientenwert zur Berechnung von Anteilen

Hinweis: Das vorher beschriebene Ergebnis kann so nicht erzielt werden!