Forum Discussion

baribir's avatar
baribir
Icon for Helper I rankHelper I
7 years ago
Solved

Create a new table from two other tables

Hi All,

 

I need to make a new table from the contents of two other tables with DAX. And add a column with the time difference(Date1-Date2).

 

Table 1:

ID1Date1
105-12-18
204-12-18
304-12-18
404-12-18

 

Table2:

 

ID2Date2
120-11-18
227-11-18
304-12-18
411-12-18

 

A new table:

 

 

ID1Date1ID2Date2Diff
105-12-18120-11-1815
105-12-18227-11-188
105-12-18304-12-181
105-12-18411-12-18-6
204-12-18120-11-1814
204-12-18227-11-187
204-12-18304-12-180
204-12-18411-12-18-7
304-12-18120-11-1814
304-12-18227-11-187
304-12-18304-12-180
304-12-18411-12-18-7
404-12-18120-11-1814
404-12-18227-11-187
404-12-18304-12-180
405-12-18411-12-18-6

  

 

  • Hi there

     

     

    Here is the DAX code

     

    Table = CROSSJOIN('Table1','Table2')

    This will give you the result you want

     

     

  • Here we go

     

    Table =
    CALCULATETABLE (
        ADDCOLUMNS (
            CROSSJOIN ( 'Table1', 'Table2' ),
            "DateDiff", DATEDIFF ( 'Table1'[Date1], 'Table2'[Date2], DAY )
        )
    )

  • Hi,

     

    Just in case you want to do this with M code, try this

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTIw1TU00jUyMLRQitWJVjICCZmgCBljCpmgCcUCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [ID1 = _t, Date1 = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID1", Int64.Type}, {"Date1", type date}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Table2),
        #"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"ID2", "Date2"}, {"ID2", "Date2"}),
        #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Custom",{{"ID2", Int64.Type}}),
        #"Changed Type with Locale" = Table.TransformColumnTypes(#"Changed Type1", {{"Date2", type date}}, "en-IN"),
        #"Added Custom1" = Table.AddColumn(#"Changed Type with Locale", "Custom", each [Date1]-[Date2]),
        #"Changed Type2" = Table.TransformColumnTypes(#"Added Custom1",{{"Custom", Int64.Type}})
    in
        #"Changed Type2"

    You may download my PBI file from here.

     

    Hope this helps.

10 Replies

  • Hi there

     

     

    Here is the DAX code

     

    Table = CROSSJOIN('Table1','Table2')

    This will give you the result you want

     

     

    • baribir's avatar
      baribir
      Icon for Helper I rankHelper I

      Thanks GilbertQ,

       

      Could you advise how to find the also with Dax add a new column with datediff.  

      • GilbertQ's avatar
        GilbertQ
        Icon for Super User rankSuper User

        Hi there

         

        You should be able to do it with a DATEDIFF(StartDate,EndDate,INTERVAL)

  • Hi,

     

    Just in case you want to do this with M code, try this

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTIw1TU00jUyMLRQitWJVjICCZmgCBljCpmgCcUCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [ID1 = _t, Date1 = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID1", Int64.Type}, {"Date1", type date}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Table2),
        #"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"ID2", "Date2"}, {"ID2", "Date2"}),
        #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Custom",{{"ID2", Int64.Type}}),
        #"Changed Type with Locale" = Table.TransformColumnTypes(#"Changed Type1", {{"Date2", type date}}, "en-IN"),
        #"Added Custom1" = Table.AddColumn(#"Changed Type with Locale", "Custom", each [Date1]-[Date2]),
        #"Changed Type2" = Table.TransformColumnTypes(#"Added Custom1",{{"Custom", Int64.Type}})
    in
        #"Changed Type2"

    You may download my PBI file from here.

     

    Hope this helps.