Forum Discussion

AndreeaV's avatar
AndreeaV
Icon for Advocate I rankAdvocate I
3 years ago
Solved

Yield curve in PowerBI

Hi,

 

I would like to create a Treasury yield curve in PowerBI like the one on the left in this app I found online. https://app.powerbi.com/view?r=eyJrIjoiZDc1ZGFhYzItZWIyYy00N2UyLTg0YzgtMGViYWEyYzZhMDQ3IiwidCI6IjRhYTQ1ZDUwLWI5NTMtNDJlYy05YmI1LWI4NzU4Mjk5NGViMSJ9

 

Data looks like this: https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_yield_curve&field_tdr_date_value=2022

 

I would like to know how to make the curve for one day, so I do the same for the rest. I tried to create measures, but I got error messages saying that I couldn't display more than one value in a measure. If I create a table for each date I want, I can't create the chart. Plus, creating tables is not dynamic.

 

Thanks!

 
  • Anonymous's avatar
    Anonymous
    3 years ago

    Hi AndreeaV ,

     

    If you want to create line charts as the app in the link, I think you need to transform your underlying data by UNPIVOT function.

    Select [Date] column and use UNPIVOT other columns. New table should look like as below.

    Measure:

    Most Recent = 
    VAR _Recent_Date = CALCULATE(MAX('Table'[Date]),ALL('Table'))
    RETURN
    CALCULATE(SUM('Table'[Value]),'Table'[Date] = _Recent_Date)
    Week Ago = 
    VAR _Recent_Date = CALCULATE(MAX('Table'[Date]),ALL('Table'))
    return
    CALCULATE(SUM('Table'[Value]),'Table'[Date] = _Recent_Date - 7)
    Month Ago = 
    VAR _Recent_Date = CALCULATE(MAX('Table'[Date]),ALL('Table'))
    return
    CALCULATE(SUM('Table'[Value]),'Table'[Date] = _Recent_Date - DAY(EOMONTH(_Recent_Date,-1)))

    ...

    Result is as below.

     

    Best Regards,
    Rico Zhou

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

2 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi AndreeaV ,

     

    If you want to create line charts as the app in the link, I think you need to transform your underlying data by UNPIVOT function.

    Select [Date] column and use UNPIVOT other columns. New table should look like as below.

    Measure:

    Most Recent = 
    VAR _Recent_Date = CALCULATE(MAX('Table'[Date]),ALL('Table'))
    RETURN
    CALCULATE(SUM('Table'[Value]),'Table'[Date] = _Recent_Date)
    Week Ago = 
    VAR _Recent_Date = CALCULATE(MAX('Table'[Date]),ALL('Table'))
    return
    CALCULATE(SUM('Table'[Value]),'Table'[Date] = _Recent_Date - 7)
    Month Ago = 
    VAR _Recent_Date = CALCULATE(MAX('Table'[Date]),ALL('Table'))
    return
    CALCULATE(SUM('Table'[Value]),'Table'[Date] = _Recent_Date - DAY(EOMONTH(_Recent_Date,-1)))

    ...

    Result is as below.

     

    Best Regards,
    Rico Zhou

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.