Can't make Tag matrix with dateview table

What i want is to have a table that is actually a matrix of 2 groups of tags. (media tags and status tags). So that i would be able to see something like this:

Things I have tried

I have tried this:


| Media Type      | to-do                                                   | next-up                                                 | in-progress                                             | done-waiting                                            | done                                                    | Cancelled                                               |
| --------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
| Books           | `$= dv.pages("#status/to-do and #book").length` | `$= dv.pages("#status/next-up and #book").length` | `$= dv.pages("#status/in-progress and #book").length` | `$= dv.pages("#status/done-waiting and #book").length` | `$= dv.pages("#status/done and #book ").length` | `$= dv.pages("#status/cancelled and #book ").length` |
| Movies          | `$= dv.pages("#status/to-do and #movie").length` | `$= dv.pages("#status/next-up and #movie").length` | `$= dv.pages("#status/in-progress and #movie").length` | `$= dv.pages("#status/done-waiting and #movie").length` | `$= dv.pages("#status/done and #movie").length` | `$= dv.pages("#status/cancelled and #movie").length` |
| Tv-Shows        | `$= dv.pages("#status/to-do and #tv-shows").length` | `$= dv.pages("#status/next-up and #tv-shows").length` | `$= dv.pages("#status/in-progress and #tv-shows").length` | `$= dv.pages("#status/done-waiting and #tv-shows").length` | `$= dv.pages("#status/done and #tv-shows").length` | `$= dv.pages("#status/cancelled and #tv-shows").length` |
| Research Papers | `$= dv.pages("#status/to-do and #research-paper ").length` | `$= dv.pages("#status/next-up and #research-paper ").length` | `$= dv.pages("#status/in-progress and #research-paper ").length` | `$= dv.pages("#status/done-waiting and #research-paper ").length` | `$= dv.pages("#status/done and #research-paper ").length` | `$= dv.pages("#status/cancelled and #research-paper ").length` |
| Anime           | `$= dv.pages("#status/to-do and #anime").length` | `$= dv.pages("#status/next-up and #anime").length` | `$= dv.pages("#status/in-progress and #anime").length` | `$= dv.pages("#status/done-waiting and #anime").length` | `$= dv.pages("#status/done and #anime").length` | `$= dv.pages("#status/cancelled and #anime").length` |

But for some reason this doesn’t properly render


Also it is way too long. There are 30 different inline-dataviewjs queries!

Is there a way to create something like this in one dataview/dataviewjs query?

The only thing I notice is that you have an extra space after #research-paper that you don’t seem to have after the other queries (and they all render fine). It might be nothing…but…?

that was the render issue, thanks.
But why there isn’t any better way to this?

There probably is an easier way to just do a Dataview table (rather than a markdown table with in-line Dataview queries), but I’m not well-versed enough in Dataview. You could perhaps show the metadata your using and describe the overall goal or ask in the Dataview channel in the obsidian discord server.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.