Version 2.1 by Dimitri Rupp on 2026/06/11 09:15

Show last authors
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