Using a dashboard variable in Table panel 'Filter data by values' transformation


I am currently using a Grafana8 dashboard. I have a table panel setup and I am using the ‘Filter data by values’ transformation. I want to be able to filter the data by a value that is assigned to a dashboard variable. The variable setup I am using is a custom variable with numerical values.

In the example below, I have setup the transformation to filter the value using ‘Is greater or equal to’ where the dashboard variable is set to either 0 or 1 which currently does not work. The filtering works when I replace the variable with the numerical value (e.g. 0 or 1). I have tried testing different variable syntax in the value box, none of which seem to work.

Is this something that is possible to do?


Im looking for exactly the same issue, did you find a solution?


I am also looking for a solution to this. I see there was a github feature request and its closed but I am still unable to get it working…

Same issue here, cannot make it work with the same filter: “Filter data by values”

Any ideas?


I am looking for this feature as well.

This would be an awesome feature.

I am on version 9.2.3. I would very much like this to work.

Hi… I’m new in Grafana. Is this topic solved or released? (I’m using CSV datasource and Grafana 9.4.3)

Many thanks!

Is there any plan to support this? Seems like a very useful feature?

1 Like

I would like to add to emphasize this issue. It is very slow, especially when multiple be are looking at the same dashboard, to have grafana add filters to a query, resend that query to an SQL database, and wait for the response to load the data. A front end filter would speed up this process by ~125x by my calculations and testing.

Please allow for front end to filter information that is loaded in the table.

1 Like


This is a great idea but it comes with some sacrifice on accuracy.

if it is filtering on the loaded data only, and the data in the database now has 1k new rows, the result set/cached or in session would not have these 1k new rows.

But that said you should really submit this as feature request where user can choose, optional, knowing what I mentioned above

I kind of have done this on Grafana 9.4

1 Like


Thank you for the response! I understand that concern, but I believe the dashboards currently have that issue. The data is cached and if the dashboard is not reloaded the data displayed on the dashboard will not be synced with the database (Unless you specify “Refresh live dashboards”).

The data could take up to 2 minutes to load from the database, depending upon the size of the table, and in that time the data would be “out-of-date”. Adding the front-end filter would speed up the process substantially and be more user-friendly. I would think notifying the user on the front-end would be more helpful for a users perspective, and telling them to refresh the page to get all the new data would be better – my that’s of course is a personal opinion and I’ll resubmit this as a feature request like you said.


I have tried this method and it doesn’t appear to be work with the SQL datasource in Grafana 9.4. Also, I believe that the “Filter by value” is needed because the variable used to filter the table should only apply to specified columns, not all of them. In the “Filter by name” you displayed I believe the ${Device} variable will filter all cells, correct?

1 Like

I think you tagged the wrong F. but here I am. :sweat_smile:

In my case I am not filtering by columns, I have many (between 1 to 200 It is kind of dynamic) “tables” (each stream of data has the same number of rows, columns but are grouped by different tags). I filter by name which is the tag using that regex filtering names containing the Device variable (selected from the drop-down variable selection)
Filter by value in my case won’t work because it will filter specific values (individual rows) on which the value meets given criteria.

1 Like

What happens if it includes forward slashes, like maybe /${priority:regex}/ (just a guess here)? When using regex value mappings, forward slashes are needed, so was wondering if that might work in this case, too.