Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
3 years ago

Create table from another with a dynamic variable

Good morning, I would like to guide me how to create a table from another with filter but the new table has a dynamic variable in the filter.

I attach the following example:

I have a table with sales fields, months and years. The report shows me the table with the fields described with a segmentation of years. The measure [annio] captures the selected year value.
And I want to get a new table according to:

Tabla_Filtro_medida =

var aniio = [annio]

var table = filter(Sales, Sales[Year]=aniio)

return table

where [annio] = SELECTEDVALUE(Sales[Year])

however the table comes out blank

If I change the variable aniio by a constant number, there if I get the table ... for example create the tabla_Filtro_valor according to

Tabla_Filtro_valor = filter(Sales, Sales[Year]=2010)

As you will see, the problem is just in the dynamic variable. How can I make it work.? ..... Note that the objective is to create the table so that the variable is dynamic.

Thank you very much for your help.

Best regards

Juan Suyon

9 Replies

  • You cannot create a calculated column or calculated table from a measure.

  • OK, thanks!!! .... Consultation, how could I do it otherwise, that is, what option would there be?

    Thank you!

    JUan Suyon

    • lbendlin's avatar
      lbendlin
      Super User

      What are you planning to do with that resulting table?

  • I explain the problem..... I have a multi-year sales table from different clients...... I want to get the top 20 sales per customer dynamically.... that is, with a year filter that shows me the table of the first 20 cleintes for that year. As the year is in a segmentation, the idea is to obtain this table every time the year varies.

    That's why I tried to create the table with the dynamic variable but I understand that you can't..... Would there be another way to get what I am looking for dynamically?

    Thank you

    • lbendlin's avatar
      lbendlin
      Super User

      You do that via RANKX() and then TOPN(20,...)