Wiki source code of Berechnete Spalten (Calculated Columns)
Version 2.1 by Dimitri Rupp on 2026/06/11 09:15
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | {{box cssClass="floatinginfobox" title="**On this page**"}} | ||
| 2 | {{toc/}} | ||
| 3 | {{/box}} | ||
| 4 | |||
| 5 | = Berechnete Spalten (Calculated Columns) = | ||
| 6 | |||
| 7 | {{info}} | ||
| 8 | **Topic:** DAX-basierte Spalten im Power-BI-**Datenmodell**, die fuer **jede Zeile** einen Wert berechnen. | ||
| 9 | **Ort der Anwendung:** Datenmodell-Ansicht — //nicht// Power Query Editor. | ||
| 10 | {{/info}} | ||
| 11 | |||
| 12 | == Was sind berechnete Spalten? == | ||
| 13 | |||
| 14 | **Berechnete Spalten** ermoeglichen das Hinzufuegen **neuer, formelbasierter Spalten**. | ||
| 15 | |||
| 16 | * **Keine „A1-Stil"-Referenzen** — berechnete Spalten beziehen sich auf **ganze Tabellen oder Spalten**. | ||
| 17 | * Berechnete Spalten **generieren Werte fuer jede Zeile** innerhalb einer Tabelle. | ||
| 18 | * Berechnete Spalten verstehen den **Zeilenkontext** (Row Context) — perfekt zum Definieren von Eigenschaften **basierend auf Informationen in jeder Zeile**. | ||
| 19 | * Berechnete Spalten sind im **Allgemeinen unbrauchbar fuer Aggregation** (SUM, COUNT, usw.). | ||
| 20 | |||
| 21 | == Beispiele == | ||
| 22 | |||
| 23 | === Gueltiges Beispiel — Parent-Flag === | ||
| 24 | |||
| 25 | In diesem Fall wurde eine Spalte mit dem Namen **„Parent"** hinzugefuegt, welche den Wert **„Yes"** hat, wenn der Wert im Feld **„TotalChildren"** **groesser als 0** ist, und **„No"**, wenn der Wert **kleiner oder gleich 0** ist. | ||
| 26 | |||
| 27 | {{code language="dax"}} | ||
| 28 | Parent = IF(Table[TotalChildren] > 0, "Yes", "No") | ||
| 29 | {{/code}} | ||
| 30 | |||
| 31 | Da berechnete Spalten den **Zeilenkontext** verstehen, wird in **jeder Zeile** ein neuer Wert berechnet — basierend auf dem Wert in der Spalte (% style="font-family:monospace" %)[TotalChildren](%%). Das ist eine **gueltige und richtige Verwendung** von berechneten Spalten. Die neue Spalte kann zum **Filtern im Datenmodell** verwendet werden. | ||
| 32 | |||
| 33 | === Anti-Pattern — Aggregation in berechneter Spalte === | ||
| 34 | |||
| 35 | Hier wird eine **Aggregationsfunktion (SUM)** verwendet, um eine neue Spalte mit dem Namen **„TotalQuantity"** zu erstellen: | ||
| 36 | |||
| 37 | {{code language="dax"}} | ||
| 38 | TotalQuantity = SUM(Sales[Quantity]) -- ⚠️ Anti-Pattern! | ||
| 39 | {{/code}} | ||
| 40 | |||
| 41 | {{warning}} | ||
| 42 | Da berechnete Spalten **keinen Filter-Context** verstehen, wird **in jeder Zeile die gleiche Gesamtsumme** zurueckgegeben. Das ist **keine gueltige/richtige Verwendung** von berechneten Spalten. Die Werte der einzelnen Zeile in der Spalte sind nicht filterbar. | ||
| 43 | |||
| 44 | **Loesung:** Hier sollte ein **[[Measure>>doc:IT-Wiki.02-Tools.PowerBI.Measures.WebHome]]** verwendet werden, das **bei Abfrage** und **im Filter-Context** ausgewertet wird. | ||
| 45 | {{/warning}} | ||
| 46 | |||
| 47 | == Row Context vs. Filter Context — der zentrale Unterschied == | ||
| 48 | |||
| 49 | |=Aspekt|=Berechnete Spalte (Row Context)|=Measure (Filter Context) | ||
| 50 | |**Auswertung**|Beim **Laden** / Refresh|**Bei Abfrage** (Visual / Filter) | ||
| 51 | |**Kontext**|**Zeilenkontext** — fuer jede Zeile separat|**Filter-Context** — dynamisch gefiltert | ||
| 52 | |**Speicher**|Wird **physisch** in jeder Zeile gespeichert|Berechnet, **nicht gespeichert** | ||
| 53 | |**Aggregation**|❌ in der Regel keine Aggregation|✅ Aggregation ist das Kernziel | ||
| 54 | |**Use Case**|Klassifizierung, Flags, abgeleitete Properties|Summen, Durchschnitte, KPIs | ||
| 55 | |||
| 56 | {{mermaid}} | ||
| 57 | flowchart LR | ||
| 58 | L[Daten laden / Refresh] --> RC[Row Context aktiv] | ||
| 59 | RC --> CALC[Calculated Column<br/>wird in jeder Zeile berechnet] | ||
| 60 | CALC --> STORE[(Wert wird gespeichert)] | ||
| 61 | |||
| 62 | Q[Visual / Filter Abfrage] --> FC[Filter Context aktiv] | ||
| 63 | FC --> M[Measure<br/>wird bei Abfrage berechnet] | ||
| 64 | M --> SHOW[Ergebnis im Visual] | ||
| 65 | |||
| 66 | classDef load fill:#e3f2fd,stroke:#1976d2,stroke-width:1px | ||
| 67 | classDef calc fill:#fff3cd,stroke:#b85c00,stroke-width:1px | ||
| 68 | classDef out fill:#c8e6c9,stroke:#2e7d32,stroke-width:1px | ||
| 69 | class L,Q load | ||
| 70 | class RC,CALC,FC,M calc | ||
| 71 | class STORE,SHOW out | ||
| 72 | {{/mermaid}} | ||
| 73 | |||
| 74 | == Entscheidung: Berechnete Spalte oder Measure? == | ||
| 75 | |||
| 76 | |=Frage|=Antwort | ||
| 77 | |Benoetigst du einen Wert **pro Zeile** in der Tabelle?|✅ **Berechnete Spalte** | ||
| 78 | |Soll der Wert **gefiltert** und **aggregiert** werden?|✅ **Measure** | ||
| 79 | |Soll der Wert in einer **Slicer-/Filterleiste** auswaehlbar sein?|✅ **Berechnete Spalte** (Measures koennen nicht direkt gefiltert werden) | ||
| 80 | |Wird der Wert **selten oder nie** veraendert?|✅ Beides moeglich — berechnete Spalte spart Rechenzeit zur Laufzeit | ||
| 81 | |Wird der Wert **dynamisch** je nach Filter benoetigt?|✅ **Measure** (Performance + Korrektheit) | ||
| 82 | |||
| 83 | == Related pages == | ||
| 84 | |||
| 85 | * [[BI Community Doku>>doc:IT-Wiki.02-Tools.PowerBI.WebHome]] | ||
| 86 | * [[Bedingte Spalten (Conditional Columns)>>doc:IT-Wiki.02-Tools.PowerBI.Bedingte-Spalten-(Conditional-Columns).WebHome]] | ||
| 87 | * [[Measures>>doc:IT-Wiki.02-Tools.PowerBI.Measures.WebHome]] | ||
| 88 | * [[DAX>>doc:IT-Wiki.02-Tools.PowerBI.DAX.WebHome]] | ||
| 89 | |||
| 90 | ---- | ||
| 91 | |||
| 92 | {{info}} | ||
| 93 | **Migration footer** | ||
| 94 | **Source:** [[Berechnete Spalten (Calculated Columns) (SharePoint)>>url:https://spltele.sharepoint.com/sites/WikiPowerBI/SitePages/Berechnete-Spalten-(Calculated-Columns).aspx]] | ||
| 95 | **Original author:** Wilfing Vanessa | ||
| 96 | **Original last-modified:** 2023-12-19 | ||
| 97 | **Migration date:** 2026-05-24 | ||
| 98 | **Migrated by:** Dimitri Rupp via ClaudeAI | ||
| 99 | **Notes:** DE-Original 1:1 (Definition, Parent-Beispiel, TotalQuantity-Anti-Pattern); rechtschreibliche Korrekturen (Filtercontext → Filter-Context); DAX-Snippets in {{code}}-Bloecke; Row-Context-vs-Filter-Context-Mermaid + Entscheidungs-Tabelle Calculated-Column-vs-Measure als Wissensbasis-Erweiterung. | ||
| 100 | {{/info}} | ||
| 101 | |||
| 102 | |||
| 103 | ---- | ||
| 104 | |||
| 105 | == Verwandte Themen == | ||
| 106 | |||
| 107 | //Kuratiert — kann direkt im Editor ergänzt werden:// | ||
| 108 | |||
| 109 | * [[Aktualisierung von Queries>>doc:IT-Wiki.02-Tools.PowerBI.Aktualisierung-von-Queries.WebHome]] | ||
| 110 | * [[Bedingte Spalten (Conditional Columns)>>doc:IT-Wiki.02-Tools.PowerBI.Bedingte-Spalten-(Conditional-Columns).WebHome]] | ||
| 111 | * [[DAX>>doc:IT-Wiki.02-Tools.PowerBI.DAX.WebHome]] | ||
| 112 | |||
| 113 | {{include reference="IT-Wiki.Makros.Verwandte-Themen.WebHome"/}} | ||
| 114 | |||
| 115 | ---- | ||
| 116 | **Status:** Migriert — Team-Review ausstehend · **Owner:** //(festlegen)// · **Letzter Review:** 2026-06-11 |