Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Create new column checking on other columns data

Hello Community!

I have a Table with the first 2 columns of the following example (ID and Time_1), and I need to add a third column (Time_2), in order to get something like this:

 

IDTime_1Time_2
13010
13010
13010
25050
34020
34020
48020
48020
48020
48020

 

Taking ID = 15 as example, Time_2 should be calculated as 30/3 = 10 (30 is the value of Time_1 and 3 is how many times Order 15 is repeated).

 

I’d be grateful if I could get some help. Thanks in advance

  • Anonymous - Try this:

    Time_2 = 
        VAR __Time_1 = [Time_1]
        VAR __Num = COUNTROWS(FILTER('Table (18)',[ID]=EARLIER([ID])))
    RETURN
        __Time_1/__Num

    PBIX is attached below sig. Table (18). 

3 Replies

  • nandic's avatar
    nandic
    Resident Rockstar

    Anonymous ,

    Try this formula:

    Time_2 =
    var _Id_Amount = CALCULATE(MIN('Table'[Time_1]),'Table'[ID]=EARLIER('Table'[ID]))
    var _Id_Count = CALCULATE(COUNTROWS('Table'),'Table'[ID]=EARLIER('Table'[ID]))
    RETURN
    DIVIDE(_Id_Amount,_Id_Count)
     
    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi nandic 

      Thanks for your help.

       

      But I am not getting the result I was expecting.

      The column Time_2 shows me the Time_1 value.

      Looks like _Id_Count is not counting the number of times the ID appears in the column.

      I tried creating the column _Id_Count separatelly, and I get 1 as a result for each row.

      In my example I should get something like:

      I hope this is clear. Do you know what I should do?

      Thanks again!

       

       

      • Greg_Deckler's avatar
        Greg_Deckler
        Community Champion

        Anonymous - Try this:

        Time_2 = 
            VAR __Time_1 = [Time_1]
            VAR __Num = COUNTROWS(FILTER('Table (18)',[ID]=EARLIER([ID])))
        RETURN
            __Time_1/__Num

        PBIX is attached below sig. Table (18).