Flatten Table gives each item of a list property its own row in a base

Each item of a list property becomes its own table row in Bases, so one note can give many rows.

MIT · no telemetry · core features free

Open larger. A Flatten Table view with 43 rows from 11 project notes and the columns step, owner, due, status and hours.
version
1.0.0
downloads
1
review
Passed
health
Excellent
license
MIT
platforms
Desktop, Mobile
obsidian
1.13.4 or later

Directory facts fetched from community.obsidian.md/users/theluckystrike.

About Flatten Table

People who keep a list of objects in the properties of a note, such as the milestones of a project.

The core table view of Bases gives one row per note, so a whole list is one cell. Flatten Table gives each item its own row, and the keys of the items become the columns. Your data stays in the properties of your notes.

It's a view for the core Bases plugin. The base selects the notes, and you write no query. It does the same job as the FLATTEN command of Dataview.

A core table with one row per project note, then the same base flattened to one row per milestone, sorted by hours and grouped by ownerPlay demo

Free features

One row for each list item

Pick a list property in the view options. Each item of that list becomes one row, with a Source column that links to its note. When the items are objects, each key is a column, and keys match without regard to case.

Open larger. The core Bases table before the plugin, with one row per project note and the whole milestones list as text in one cell.

Sort by any column

Click a column header to sort the rows, again to sort the other way, and a third time for the base order. Numbers sort as numbers, and dates in the form YYYY-MM-DD sort in date order. The sort is saved with the view in the base file.

Open larger. The flat table sorted by the due column, with an arrow in the column header.

Live update and embeds

When you change a property, the table draws again after a short delay. You can embed the view in any note, for example in a weekly review.

Open larger. The flat table embedded in a note named Weekly review.

The free version flattens the lists of up to 50 notes that have items, and the table says how many it left out.

Pro features

Pro costs $5 a month or $15 one time through GitHub Sponsors. One sponsorship turns on Pro in all 13 plugins.

No 50-note limit Pro

The free version flattens the lists of up to 50 notes that have items. Pro removes that limit.

Group rows Pro

Group the rows by any column, or by Source. Each group has a header with its value and the number of rows.

Open larger. Milestones grouped by owner, with a group header that says Chen and 11 rows.

Filter rows Pro

The filters of the base select notes, and the row filter selects items. Keep only the rows where a column contains, equals or doesn't equal a value, or is empty. For numbers and dates, keep the rows that are larger or smaller than a value.

Open larger. Only the milestones whose status isn't done, 32 rows from 11 notes, sorted by due date.

Export to a note or CSV Pro

Export the flat table, with its filter and sort, to a new Markdown note or a CSV file. The Markdown table links each row back to its source note.

Open larger. A new note that holds the exported Markdown table of 32 rows, with a link to each source note.

Set up Flatten Table

needs

  • Obsidian 1.13.4 or later
  • The core plugin Bases, turned on
  • A list property in the properties of your notes

steps

  1. Write a list of objects in the properties of your notes. Use the source mode, because the Properties panel can't edit such a list.

  2. Create a base, or open one, and set its filters so that it selects these notes.

  3. Select the view menu in the base toolbar and add a view of the type Flatten table.

  4. Open the view options. In List property, pick your list property.

Why this exists

Forum topic 105425 asks for a Dataview FLATTEN solution in Bases, and it has 8 votes. Without one, the only way out is a stub note for each item.

Read the request

How it compares

Dataview
Dataview has FLATTEN in its query language, and it doesn't need Bases. Flatten Table works inside Bases, so you get the base filters, the view menu and embeds without a query.
Core Bases table view
The core table view gives one row per note, so the whole list is one cell.

Questions about Flatten Table

Can Obsidian Bases show more than one row per note?

The core table view gives one row per note, so a list property is one cell. Flatten Table adds a view that gives each item of the list its own row. In the README example, 11 project notes give 43 rows.

Does Flatten Table change my notes?

No. It only reads the properties of your notes. Export creates a new file and doesn't touch the sources.

How is Flatten Table different from Dataview FLATTEN?

Dataview has FLATTEN in its query language, and it doesn't need Bases. Flatten Table works inside Bases. You get the base filters, the view menu and embeds, and you write no query.

How fast is Flatten Table with many notes?

In the end-to-end test with 500 notes and 2,500 rows, a full draw took 12 to 61 ms on an M3 Pro Mac. It reads the properties from the metadata cache of Obsidian, so it opens no file.

Network use

Flatten Table makes no network requests until you select Sign in with GitHub in the settings. From then on, it asks the GitHub API about your sponsorship at most once every 7 days, or when you select Refresh. It sends no note content, file names or other vault data.

Read the full network disclosure

Flatten Table 1.0.0, MIT license

MIT · no telemetry · core features free