Kombinatorische Analyse mit Power Query in LuckyTemplates

Kombinatorische Analyse mit Power Query in LuckyTemplates

Ich möchte mich eingehend mit der sogenannten kombinatorischen Analyse befassen. Dies kann als das Auswählen und Anordnen von Elementen von Mengen gemäß vorgeschriebenen Regeln definiert werden. Es mag esoterisch klingen, aber es gibt tatsächlich einige sehr praktische Anwendungsfälle. Sie können sich das vollständige Video dieses Tutorials unten in diesem Blog ansehen.

In diesem Tutorial zeige ich Ihnen, wie Sie dies mithilfe der Power Query in LuckyTemplates tun.

Inhaltsverzeichnis

Beispielfall einer kombinatorischen Analyse

In diesem Beispiel einer kombinatorischen Analyse bestand die Aufgabe darin, dass wir eine Liste mit sechs Lagern hatten und jeden einzelnen Satz von drei Lagern generieren mussten. Es klingt nach einem ziemlich einfachen Problem, aber dies ist einer der Fälle, in denen die Sprache wirklich wichtig ist.

Die richtige Antwort lautet hier entweder 216, 120, 56 oder 20. Je nachdem, wie Sie diesen eindeutigen Satz definieren und welche Regeln Sie vorgegeben haben, kann es sein, dass Sie um den Faktor 10 daneben liegen, wenn Sie den Satz nicht richtig erhalten.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Daher sind hier zwei Dimensionen wichtig. Die erste Frage lautet: „ Spielt die Reihenfolge eine Rolle ?“ Wenn wir also über drei Dreiergruppen sprechen, ist ABC gleichbedeutend mit BCA? Ist die Reihenfolge also wichtig? Und wenn es auf die Reihenfolge ankommt , sprechen wir über Permutationen .

Ein gutes Beispiel für Permutationen, bei denen die Reihenfolge eine Rolle spielen könnte, ist (wir sprechen hier von einem Lagerkontext) im Fall der Reisezeit. Es kann sehr gut sein, dass, wenn Sie Lager A, dann Lager B und dann Lager C besuchen, die Reisezeit aufgrund des Verkehrsflusses mit Verkehr gegen Verkehr, also die Zeit, zu der Sie in jedem Lager ankommen, je nach Bestellung sehr unterschiedlich sein kann in dem du sie besuchst.

Die Kehrseite davon ist: „ Reihenfolge spielt keine Rolle “. In diesem Fall sprechen wir von Kombinationen und nicht von Permutationen. Der hier übliche Anwendungsfall ist die Entfernung. Beispielsweise unterscheidet sich in der Luftlinie die Entfernung von A nach B nach C nicht von der Entfernung von B nach C nach A. Diese werden in einem Kombinationskontext betrachtet.

Kombinationen gelten als Duplikate voneinander. In einem Permutationskontext hingegen werden sie als einzigartig betrachtet.

Und wie Sie sehen, sollte ein Zahlenschloss eigentlich ein Permutationsschloss sein, denn in diesem Fall kommt es tatsächlich auf die Reihenfolge an, sodass es sich um eine Permutation und nicht um eine Kombination handelt.

Die zweite wichtige Frage bzw. Dimension lautet: „ Kann ein einmal ausgewählter Artikel erneut ausgewählt werden ?“ Wenn wir beispielsweise A als unser erstes Lager wählen, können wir dann erneut A wählen, oder müssen wir jedes Mal einzigartige Elemente auswählen?

Der Begriff, den wir hier verwenden, ist „ mit Ersatz “ oder „ ohne Ersatz “. Wenn also ein Artikel erneut entnommen werden kann, erfolgt dies mit Ersatz, das heißt, Sie kommissionieren ihn. Und in gewisser Weise wandert es zurück in den Auswahlbehälter und wird erneut ausgewählt. Lautet die Antwort Nein, ist es ersatzlos.

Sie können also in dieser Lösung sehen, dass Permutationen mit Ersetzung am wenigsten restriktiv sind. Das ist es also, das uns 216 einzigartige Sets beschert. Und Kombinationen ohne Ersatz sind am restriktivsten und geben uns 20.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Wir werden diese Formeln lediglich dazu verwenden, unsere Power Query- Ergebnisse zu überprüfen. Wir erinnern uns also an 216, 120, 56 und 20. Lassen Sie uns nun zu Power Query springen und sehen, wie sich diese kombinatorische Analyse auswirkt.

Kombinatorische Analyse: Permutationen in Power Query

In der Power Query habe ich hier einen sehr einfachen Fall mit sechs benannten Warehouses.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Und ich habe diese Power Query M-Funktion entwickelt, mit der ich Kombinationen und Permutationen verarbeitet habe.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Zuerst werde ich den ersten Anwendungsfall entwickeln, bei dem es sich um Permutationen mit replacement handelt , den am wenigsten restriktiven Fall. Die Möglichkeit, dies in der Power Query zu tun, besteht darin, diese Warehouses- Tabelle zu nehmen und darauf zu verweisen (in DAX verwenden wir CROSSJOIN ).

Kombinatorische Analyse mit Power Query in LuckyTemplates

Ich nenne das Per w Rep (Permutationen mit Ersetzung).

Kombinatorische Analyse mit Power Query in LuckyTemplates

Es gibt verschiedene Möglichkeiten, einen Cross-Join in Power Query durchzuführen. Der einfachste Weg, den ich gefunden habe, besteht darin, einfach „ Spalte hinzufügen“ und dann „Spalte anpassen“ zu wählen . Verweisen Sie in der benutzerdefinierten Spaltenformel auf die Tabelle „Lager“ .

Kombinatorische Analyse mit Power Query in LuckyTemplates

Und wenn wir auf „OK“ klicken, wird eine verschachtelte Tabelle generiert.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Dann erweitern wir das und deaktivieren das Kontrollkästchen Originalspaltennamen als Präfix verwenden .

Kombinatorische Analyse mit Power Query in LuckyTemplates

Und wir erhalten diesen Standort.1 , der jede mögliche Kombination von zwei ist. Es werden also die ersten sechs Referenzen mit den anderen sechs Kombinationen verglichen. Die zweiten sechs machen das Gleiche, bis wir 36 verschiedene Sätze haben.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Wir können den dritten Schritt machen, indem wir das noch einmal machen. Also gehen wir zu „Spalte hinzufügen“, dann zu einer benutzerdefinierten Spalte und dann zu „Lager“.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Und wir werden die 216 Zeilen als Permutationen mit Ersetzung haben.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Und von hier unten sehen Sie 3 Spalten, 216 Zeilen.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Der nächste Anwendungsfall sind Permutationen ohne Ersatz . Was wir hier meinen, ist im Grunde alles, was ein sich wiederholendes Element hat. In dieser Tabelle betrachten wir also Zeile 1 bis Zeile 8.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Dazu werfen wir einen Blick auf diese Funktion, fxSortAndIsDistinct .

Kombinatorische Analyse mit Power Query in LuckyTemplates

Im erweiterten Editor können Sie sehen, dass hier grundsätzlich nach einer Tabelle gefragt wird und dann ein SortLocs ausgeführt wird . Aber der wichtige Teil hier für „mit Ersatz“ oder „ohne Ersatz“ ist, dass es sich um eine IsDistinct- Funktion handelt. Dies bedeutet im Grunde genommen, eine Liste von Elementen zu nehmen und „wahr“ oder „falsch“ zu bestimmen, ob es eindeutig ist oder ob es Duplikate in der Liste der Elemente gibt.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Also gehen wir hierher, wählen den Perm w Rep aus und klicken auf Invoke .

Kombinatorische Analyse mit Power Query in LuckyTemplates

Dadurch erhalten wir diese beiden neuen Spalten, SortLocs und IsDistinct . Denken Sie daran, dass die ersten acht Datensätze Duplikate enthielten und der neunte Datensatz das erste Mal war, dass wir das Unterschiedliche sahen . Deshalb ist die neunte Zeile hier die erste, die als wahr angezeigt wird.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Wenn wir an die Zahlen zurückdenken, die wir bei den Fakultätsberechnungen hatten, erwarten wir 120 Datensätze, wenn wir die nicht eindeutigen Datensätze herausnehmen. Versuchen wir also, hier zu filtern und das FALSCH herauszufiltern.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Dabei erhalten wir hier unten genau die 120 Zeilen, die wir erwarten. Benennen wir dies nun in Perm wo Rep (Permutation ohne Ersatz) um.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Kombinatorische Analyse: Kombinationen in Power Query

Jetzt machen wir die Kombinationen mit replacement . Dazu führen wir den Vorgang einfach noch einmal durch und wiederholen den Schritt (Aufgerufene Funktion). Es ist also in Ordnung, dass wir Duplikate haben, aber wir wollen keine Mengen, die dieselben Elemente enthalten , aber in einer anderen Reihenfolge.

Kombinatorische Analyse mit Power Query in LuckyTemplates

In diesem Fall geht es um Kombinationen. Wenn Sie sich daran erinnern, dass ABC gleich BCA und CAB ist, werden diese alle als Duplikate voneinander betrachtet. Und die Art und Weise, wie wir das bestimmen, erfolgt über die Sortierfunktion ( fxSortAndIsDistinct ).

Wenn wir die Funktion im erweiterten Editor erneut aufrufen, sehen wir für die zweite Spalte, dass wir die Liste alphabetisch sortiert haben. Dann haben wir die durch Kommas getrennten Werte aus dieser Liste extrahiert. Jetzt haben wir jeden Satz alphabetisch sortiert. Wir haben die Reihenfolge normalisiert, um das Auffinden von Duplikaten zu erleichtern.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Wenn wir nun auf diese aufgerufene Funktion zurückkommen, denken Sie daran, dass wir hier nach 56 Datensätzen suchen. Also nehmen wir diese Art von Standort ( SortLocs ) und entfernen unsere Duplikate .

Kombinatorische Analyse mit Power Query in LuckyTemplates

Damit erhalten wir 56 Zeilen.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Dies ist also unser dritter Anwendungsfall. Benennen wir dies in CC w Rep (Kombinationen mit Ersetzung) um.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Lassen Sie uns dies abschließen, indem wir noch einmal die Permutationen mit der Ersetzungstabelle (Perm w Rep) nehmen und das gleiche Muster ausführen (invoke). Anschließend entfernen wir die Duplikate (Spalte „SortLocs“), da es sich hierbei um eine Kombination handelt und die Reihenfolge keine Rolle spielt. Es ist ersatzlos, daher wollen wir auch nur die eindeutige Liste . Also klicken wir in der Spalte „IsDistinct“ auf „FALSE“.

Kombinatorische Analyse mit Power Query in LuckyTemplates

Damit erhalten wir 20 Datensätze. Und jetzt haben wir alle vier unserer Anwendungsfälle.

Kombinatorische Analyse mit Power Query in LuckyTemplates


Sortieren von Datumstabellenspalten in LuckyTemplates
Einsteigerhandbuch zum M-Code in LuckyTemplates
Konvertieren Sie die Datumstabellenfunktion in eine Tabellenabfrage in LuckyTemplates

Abschluss

Jetzt haben wir also alle vier unserer Anwendungsfälle. Sie können wirklich sehen, wie wirkungsvoll dies im Hinblick auf die Entwicklung einer kombinatorischen Analyse ist, die Ihnen die Kontrolle über Ersetzungen und unterschiedliche Elemente gibt.

Dies gilt sogar in einigen komplexeren Fällen, in denen Sie einen teilweisen Ersatz haben oder möglicherweise beim ersten Mal ein doppeltes Element auswählen, beim zweiten Mal jedoch nicht. Sie können das in Power Query immer noch gut handhaben .

Ich hoffe, dass Sie dies nützlich fanden. Weitere Inhalte finden Sie unter den folgenden Links. Sie können sich auch das vollständige Video dieses Tutorials unten ansehen.

Alles Gute!


So speichern und laden Sie eine RDS-Datei in R

So speichern und laden Sie eine RDS-Datei in R

Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

In diesem Tutorial zur DAX-Codierungssprache erfahren Sie, wie Sie die GENERATE-Funktion verwenden und einen Kennzahltitel dynamisch ändern.

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

In diesem Tutorial erfahren Sie, wie Sie mithilfe der Multi-Threaded-Dynamic-Visuals-Technik Erkenntnisse aus dynamischen Datenvisualisierungen in Ihren Berichten gewinnen.

Einführung in den Filterkontext in LuckyTemplates

Einführung in den Filterkontext in LuckyTemplates

In diesem Artikel werde ich den Filterkontext durchgehen. Der Filterkontext ist eines der Hauptthemen, über die sich jeder LuckyTemplates-Benutzer zunächst informieren sollte.

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Ich möchte zeigen, wie der LuckyTemplates Apps-Onlinedienst bei der Verwaltung verschiedener Berichte und Erkenntnisse aus verschiedenen Quellen helfen kann.

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Erfahren Sie, wie Sie Ihre Gewinnmargenänderungen mithilfe von Techniken wie Kennzahlenverzweigung und der Kombination von DAX-Formeln in LuckyTemplates ermitteln.

Materialisierungsideen für Datencaches in DAX Studio

Materialisierungsideen für Datencaches in DAX Studio

In diesem Tutorial werden die Ideen der Materialisierung von Datencaches und deren Auswirkungen auf die Leistung von DAXs bei der Bereitstellung von Ergebnissen erläutert.

Geschäftsberichte mit LuckyTemplates

Geschäftsberichte mit LuckyTemplates

Wenn Sie bisher noch Excel verwenden, ist dies der beste Zeitpunkt, LuckyTemplates für Ihre Geschäftsberichtsanforderungen zu verwenden.

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst