Obsidian Dataview: Praxisanleitung mit Abfragen zum Kopieren

Dataview ist das Community-Plugin, das einen Obsidian-Vault abfragbar macht. Du schreibst weiter normale Notizen, ergänzt oben ein paar Eigenschaften, und Dataview baut daraus lebende Listen und Tabellen: jedes Projekt, das diesen Monat fällig ist, jedes Buch, das du gerade liest, jeden Kunden, den du seit zwei Monaten nicht angerufen hast. Nichts wird kopiert oder exportiert, die Tabellen ändern sich also, sobald sich eine Notiz ändert. Diese Anleitung zeigt die Abfragen, die du wirklich brauchst, mit Beispielen aus den Dashboards unserer eigenen Vaults.

Was das Obsidian-Plugin Dataview macht

Dataview liest drei Arten von Daten aus deinen Notizen. Eigenschaften sind der YAML-Block am Anfang einer Notiz zwischen zwei Zeilen mit drei Bindestrichen. Inline-Felder schreibst du im Text als schlüssel:: wert oder in eckigen Klammern in eine Aufgabenzeile. Implizite Felder kennt Obsidian schon, etwa file.name, file.ctime, file.tags und file.link. Eine Abfrage ist ein Codeblock mit der Sprache dataview, der in der Leseansicht als Liste, Tabelle, Aufgabenliste oder Kalender erscheint. Eine Notiz mit Eigenschaften sieht so aus:

---
status: aktiv
due: 2026-11-27
owner: Lina
---
# Website-Relaunch

Die Schlüssel (status, due, owner) stehen auf Englisch, die Werte auf Deutsch. Dataview akzeptiert auch deutsche Schlüssel, aber ein Umlaut wie in fällig muss in jeder Abfrage exakt gleich getippt werden, und Vorlagen aus anderen Quellen nutzen fast immer englische Schlüssel. So halten es alle unsere Vaults.

Dataview installieren und die erste Abfrage schreiben

Öffne Einstellungen, Externe Erweiterungen, schalte den eingeschränkten Modus aus, falls er noch aktiv ist, wähle Durchsuchen und suche nach Dataview. Installieren, aktivieren, fertig: Vor der ersten Abfrage musst du nichts einstellen. Leg eine Notiz an, füge einen Codeblock mit der Sprache dataview ein und beginne mit der einfachsten Abfrage, einer Liste aller Notizen in einem Ordner:

```dataview
LIST
FROM "Projekte"
```

In der Leseansicht wird daraus eine Liste von Links. Ersetze LIST durch TABLE, nenne die Eigenschaften, die du als Spalten willst, und du hast eine Projektübersicht:

```dataview
TABLE status, due, owner
FROM "Projekte"
WHERE status = "aktiv"
SORT due ASC
```

Dataview-Abfragesyntax: FROM, WHERE, SORT und GROUP BY

Jede Abfrage beginnt mit ihrem Typ, LIST, TABLE, TASK oder CALENDAR, gefolgt von optionalen Befehlen, die der Reihe nach laufen. FROM wählt die Quelle: einen Ordner in Anführungszeichen, ein Tag wie #buch oder [[]] für Notizen, die auf die aktuelle verlinken. Quellen lassen sich mit AND, OR und einem vorangestellten Minus zum Ausschließen kombinieren. WHERE behält nur passende Zeilen, etwa WHERE status = "aktiv" oder WHERE due <= date(today). SORT sortiert nach einem oder mehreren Feldern auf- oder absteigend, LIMIT begrenzt die Zahl der Zeilen. Die Befehle bleiben englisch, auch wenn Ordner und Werte deutsch sind.

Mit GROUP BY werden Tabellen richtig nützlich. Es fasst Zeilen mit gleichem Wert zu einer Zeile pro Gruppe zusammen, die ursprünglichen Notizen landen in einer Liste namens rows, die du mit length(rows) zählst oder mit sum(rows.value) addierst. Der Gruppenwert selbst heißt key. Diese Abfrage zählt Projekte nach Status:

```dataview
TABLE rows.file.link AS "Notes", length(rows) AS "Count"
FROM "Projekte"
GROUP BY status
```

Zwei Details bringen fast alle ins Stolpern. Ein Eigenschaftsname mit Bindestrich würde als Subtraktion gelesen, er muss also als row["date-started"] geschrieben werden, so liest unser Buchnotizen-Vault die Lesedaten. Und WITHOUT ID nach TABLE blendet die automatische erste Spalte mit den Dateinamen aus, wenn du die erste Spalte selbst bestimmen willst.

Obsidian-Aufgaben mit Dataview: Checkboxen im ganzen Vault abfragen

Eine TASK-Abfrage liefert die Checkboxen selbst statt der Notizen, und du kannst sie direkt in den Ergebnissen abhaken. Dataview liest ein Fälligkeitsdatum, das als Inline-Feld in der Aufgabenzeile steht, und versteht auch das 📅-Datum des Tasks-Plugins:

- [ ] Überarbeitetes Angebot schicken [due:: 2026-10-28]
```dataview
TASK
FROM "Projekte"
WHERE !completed AND due AND due <= date(today)
GROUP BY file.link
```

Stehen Aufgaben im Mittelpunkt deines Systems, hat das Tasks-Plugin die reichere Syntax und Wiederholungen, unsere Anleitung zu Obsidian-Aufgaben vergleicht beide. Dataview ist die bessere Wahl, wenn Aufgaben nur ein Teil eines Dashboards mit Notizen und Eigenschaften sind.

Dataview-Tabellen als Beispiele aus unseren Vaults

Jede Abfrage in diesem Abschnitt läuft in einem Vault, den du herunterladen kannst. Du kannst ihn also öffnen und das Ergebnis mit echten Daten sehen. Der Projektmanagement-Vault listet aktive Projekte nach Fälligkeit. Der D&D-Kampagnen-Vault gruppiert auf dem Spielleiterschirm alle NSCs nach Ort mit GROUP BY location. Der Buchnotizen-Vault zeigt, was du gerade liest und was du mit welcher Bewertung beendet hast. Der Studenten-Vault listet Abgaben ab heute mit WHERE due AND due >= date(today). Am weitesten geht unsere Obsidian-CRM-Vorlage: Wiedervorlagen dieser Woche, Pipeline-Wert nach Phase und Kontakte, mit denen du seit 60 Tagen nicht gesprochen hast, mit date(today) - last_contact > dur(60 days).

Obsidian Dataview vs. Bases

Bases ist ein Kern-Plugin, das 2025 zu Obsidian kam. Es macht ebenfalls aus Eigenschaften Tabellen, die Ansicht entsteht aber per Klick statt per Abfrage, und Werte lassen sich direkt in der Tabelle bearbeiten. Eine Base wird als .base-Datei gespeichert, ihre Definition ist lesbares YAML:

filters:
  and:
    - file.inFolder("Projekte")
views:
  - type: table
    name: All
    groupBy:
      property: status
      direction: ASC

Nimm Bases, wenn du eine bearbeitbare Ansicht wie in einer Tabellenkalkulation willst, ohne ein Plugin zu installieren. Bleib bei Dataview für das, was Bases nicht kann: Abfragen mitten in einer Notiz, Aufgabenabfragen, Links zwischen Notizen als Quelle, Rechnen mit Datumswerten wie "seit 60 Tagen unberührt" und JavaScript-Abfragen über DataviewJS. Viele Vaults nutzen beides, und der CRM-Vault bringt neben dem Dataview-Dashboard eine Pipeline in Bases mit, damit du beide an denselben Daten vergleichen kannst.

Warum eine Dataview-Abfrage keine Ergebnisse zeigt

Die meisten leeren Tabellen haben einen von vier Gründen, und zwei davon sind typisch deutsch. Erstens das Datum: due: 28.10.2026 speichert Dataview als Text, der Vergleich mit date(today) passt also nie. Schreib Daten immer als JJJJ-MM-TT. Zweitens die Dezimalzahlen: betrag: 1.500,50 mit Punkt und Komma ist für Dataview ebenfalls Text, und sum() übergeht ihn. Beträge gehören als 1500.50 oder ganz ohne Nachkommastellen in die Eigenschaft. Die anderen zwei sind universell: Der Ordner im FROM passt nicht zum echten Pfad, der Groß- und Kleinschreibung unterscheidet und bei Unterordnern vollständig sein muss, oder du bist noch in der Bearbeitungsansicht, in der die Abfrage als Code erscheint. Wenn die Tabellen Daten als 28.10.2026 zeigen sollen, trag in den Dataview-Einstellungen beim Datumsformat dd.MM.yyyy ein. Das Feld nutzt die Luxon-Codes mit kleinem yyyy, nicht die der Obsidian-Vorlagen.