Forum Discussion

Saxon10's avatar
Saxon10
Post Prodigy
4 years ago
Solved

Crete measure for multiple columns

I have two tables are table 1 and table 2.

 

In table 1 the following columns are contains description, qty need 10 days, qty need 20 days, qty need 30 days and qty need 40 days. 

 

In table 2 has days only 4 rows. 

 

There's no technical connection in between two tables so I don't known how can I link together in order to achieve the result in visualisation. 

 

Desired result and Example. 

 

I apply the slicer for table 2 for days so

If I select 10 days then it will show only sum of qty of 10 days and the same thing for rest of the days. 

I would like achieve the result in visualisation. 

 

I am looking for measure or new calculate column in order to link in between two tables. 

 

Snapshot of tables and desired result. 

  • Hi Saxon10 

    I have a solution but it is not the most dynamic. If your column headers will never change then this may be a fine solution but I'm sure someone may have a more dynamic option. However, please see the below measure and let me know if this is a viable option.

     

    CheckQty = SWITCH(TRUE(),
        CONTAINSSTRING("Qty Need 10 Days",MAX('Days'[Days])),SUM('Items'[Qty Need 10 Days]),
        CONTAINSSTRING("Qty Need 20 Days",MAX('Days'[Days])),SUM('Items'[Qty Need 20 Days]),
        CONTAINSSTRING("Qty Need 30 Days",MAX('Days'[Days])),SUM('Items'[Qty Need 30 Days]),
        CONTAINSSTRING("Qty Need 40 Days",MAX('Days'[Days])),SUM('Items'[Qty Need 40 Days])) + 0

     

    Result:

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Kind regards,
    Seanan
    If this post helped, please consider accepting it as the solution.

  • Hi Saxon10 

    You could try this:

    Total = 'Items'[10 Days] + 'Items'[20 Days] + 'Items'[30 Days] + 'Items'[40 Days]

    Then click on the parameter column and adjust the code to:

    Days = {
        ("10Days", NAMEOF('Items'[10 Days]), 0),
        ("20 Days", NAMEOF('Items'[20 Days]), 1),
        ("30 Days", NAMEOF('Items'[30 Days]), 2),
        ("40 Days", NAMEOF('Items'[40 Days]), 3),
        ("Total", NAMEOF('Items'[Total]), 4)
    }

    Result:

  • Hi Saxon10 ,

     

    For the card create the following measure:

     

    Measure = 
    VAR __SelectedValue =
        SELECTCOLUMNS (
            SUMMARIZE ( days , Days[Days] , Days[Days Fields]),
            Days[Days]
        )
    var SelectedValuesDays = CONCATENATEX(__SelectedValue, Days[Days], "|")
    
    Return
    IF(CONTAINSSTRING(SelectedValuesDays, "10"), [10 days]) 
    + IF( CONTAINSSTRING(SelectedValuesDays, "20"), [20 days])
    + IF( CONTAINSSTRING(SelectedValuesDays, "30"), [30 days])
    + IF( CONTAINSSTRING(SelectedValuesDays, "40"), [40 days])
    

     

     

21 Replies

  • Saxon10's avatar
    Saxon10
    Post Prodigy

    Hi,

     

    something looks like this but I chose manually the result. 

     

  • Seanan's avatar
    Seanan
    Solution Supplier

    Hi Saxon10 

    I have a solution but it is not the most dynamic. If your column headers will never change then this may be a fine solution but I'm sure someone may have a more dynamic option. However, please see the below measure and let me know if this is a viable option.

     

    CheckQty = SWITCH(TRUE(),
        CONTAINSSTRING("Qty Need 10 Days",MAX('Days'[Days])),SUM('Items'[Qty Need 10 Days]),
        CONTAINSSTRING("Qty Need 20 Days",MAX('Days'[Days])),SUM('Items'[Qty Need 20 Days]),
        CONTAINSSTRING("Qty Need 30 Days",MAX('Days'[Days])),SUM('Items'[Qty Need 30 Days]),
        CONTAINSSTRING("Qty Need 40 Days",MAX('Days'[Days])),SUM('Items'[Qty Need 40 Days])) + 0

     

    Result:

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Kind regards,
    Seanan
    If this post helped, please consider accepting it as the solution.

    • Saxon10's avatar
      Saxon10
      Post Prodigy

      Seanan @thanks for your quick reply. Could you please share your working file so I can test and update the feedback to you.

    • Saxon10's avatar
      Saxon10
      Post Prodigy

      Seanan,  I try to apply your measure logic in actual data and some reason measure working only qty needs 10 days and rest of them is showing 0 when I try to choose qty need 20 days, 30 days and 40 days I don't know why? 

      I have a lot blanks columns in each columns maybe that's the reason it's not calculated properly? 

       

      Can I get new calculate column instead of measure? is that possible?

       

      in your sample data file working without any issues. 

       

      can you please advise.

       

      • Seanan's avatar
        Seanan
        Solution Supplier

        Hi Saxon10 

        Thanks for letting me know.

        I'll take a look at changing the code to fit in a calculated column. However, I am a little busy today so I'll get back to you later this evening. 

    • Saxon10's avatar
      Saxon10
      Post Prodigy

      Ashish_Mathur, Thanks for your reply, those qty columns came from dax not part of the data source therefore unable to unpivot the data.

      can I get the same output without unpivot the data source.

      Please advice 

       

      • MFelix's avatar
        MFelix
        Super User

        Hi Saxon10 ,

         

        The option given by Seanan however and with the new parameter fileds you can have a dynamica table that shows all the values directly:

        Create a sum measure for each column:

        Now create the parameters

         

         

        Now you can have a dynamic table

         

        If you place it on a card you will have the first one selected also the order you select the values in the slicer is the order of the table: