Forum Discussion

bleow's avatar
bleow
Frequent Visitor
5 years ago
Solved

Reference data in charts in text box

I need to generate sentences referencing data in graphs, e.g. the 32% and 30% in the chart as shown below:

to come out with sentences like "the highest X is [value] at [percent]".

 

 

Currently I'm using the Smart Narrative function to add these to text boxes as values: 

(the real fields have been replaced with xxxx)

 

 

However, I'm having difficulties getting the AI to generate values as percentage of grand total, as well as perform arithmetic operations. Is there a way to generate these numbers as text easily, without the need to rewrite every graph's data and filter contexts as a DAX measure?

  • Anonymous's avatar
    Anonymous
    5 years ago

    bleow 

     

    You can create a measure using a card visual. Please check my example below:

     

    Measure =
    VAR topitem = CALCULATE(MAX([Item]),FILTER('Table',[Value]=MAXX(ALL('Table'),[Value])))
    VAR top_percent = FORMAT(MAXX(ALL('Table'),[Value]) / SUMX(ALL('Table'),[Value]),"percent")
    Return CONCATENATE("The Highest Item is ", CONCATENATE(topitem, CONCATENATE(" at ", top_percent)))
     

     

    Paul Zheng _ Community Support Team
    If this post helps, please Accept it as the solution to help the other members find it more quickly.

2 Replies

  • bleow , Try a measure like

     

    divide(CALCULATE([Measure],TOPN(1,allselected('Table'[category]),[Measure],DESC),VALUES('Table'[category])), [Measure])

     

    or

     

    divide(CALCULATE([Measure],TOPN(1,allselected('Table'[category]),[Measure],DESC),VALUES('Table'[category])), calculate([Measure],all(Table)))

  • Anonymous's avatar
    Anonymous
    Not applicable

    bleow 

     

    You can create a measure using a card visual. Please check my example below:

     

    Measure =
    VAR topitem = CALCULATE(MAX([Item]),FILTER('Table',[Value]=MAXX(ALL('Table'),[Value])))
    VAR top_percent = FORMAT(MAXX(ALL('Table'),[Value]) / SUMX(ALL('Table'),[Value]),"percent")
    Return CONCATENATE("The Highest Item is ", CONCATENATE(topitem, CONCATENATE(" at ", top_percent)))
     

     

    Paul Zheng _ Community Support Team
    If this post helps, please Accept it as the solution to help the other members find it more quickly.