Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
martinfernandez
Frequent Visitor

Transform DAX function into a Power Query function

Hi all,

 

I need to use the following DAX function in a Power Query custom column since I get a "circular dependency" when trying to relate an index column to the calculated one.

 

Period = 
CALCULATE(
    VALUES('Time Periods'[Time Period Code]),
    FILTER(
        'Time Periods',
        'Time Periods'[Start Date] >= EARLIER( 'Due Dates Cube'[Due Date] )
        && 'Time Periods'[End Date] <= EARLIER( 'Due Dates Cube'[Due Date] )
    )
)

How would you achieve this goal? Thanks in advance.

 

Regards,

Martin

2 ACCEPTED SOLUTIONS
TomMartens
Super User
Super User

Hey,

I'm wondering what you want to achieve, your DAX formula look somewhat odd.

 

Basically VALUES() returns a table, if this table contains just one row and one column its result can be automatically converted to a scalar value. Based on the filter I would guess that in some conditions it could be possible that there are more rows than just one.

 

For this reason, can you please explain in more detail what you want to achieve and you may also consider to provide an xlsx file with sample data, upload the file to onedrive or dropbox and share the link.

 

Regards,

Tom



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany

View solution in original post

Thank you for replying. I just solved by using another way (a non-best practice one).

 

But, just in case, I needed to evaluate a "expiration date" column based on two columns from another table like (days before and days after😞

 

Ejemplo problema.png

According to previous image, I wanted to calculate '1st table'[Period ID] where '1st table'[Expiration Date] is between Duration.Days(DateTime.LocalNow()) + '2nd table'[Days Before] and Duration.Days(DateTime.LocalNow()) + '2nd table Days After'.

 

But I just deleted Days before and Days after columns, to add a conditional column "Period ID" to do the calculation manually.

View solution in original post

2 REPLIES 2
TomMartens
Super User
Super User

Hey,

I'm wondering what you want to achieve, your DAX formula look somewhat odd.

 

Basically VALUES() returns a table, if this table contains just one row and one column its result can be automatically converted to a scalar value. Based on the filter I would guess that in some conditions it could be possible that there are more rows than just one.

 

For this reason, can you please explain in more detail what you want to achieve and you may also consider to provide an xlsx file with sample data, upload the file to onedrive or dropbox and share the link.

 

Regards,

Tom



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany

Thank you for replying. I just solved by using another way (a non-best practice one).

 

But, just in case, I needed to evaluate a "expiration date" column based on two columns from another table like (days before and days after😞

 

Ejemplo problema.png

According to previous image, I wanted to calculate '1st table'[Period ID] where '1st table'[Expiration Date] is between Duration.Days(DateTime.LocalNow()) + '2nd table'[Days Before] and Duration.Days(DateTime.LocalNow()) + '2nd table Days After'.

 

But I just deleted Days before and Days after columns, to add a conditional column "Period ID" to do the calculation manually.

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.