cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Joanne
Frequent Visitor

Replace/Substitute value for text in specific column using DAX

Hi, 

Can you please help in creating a measure using DAX to fulfil the 4 conditions below? Also the total amount should be summing up the rows after the conditions are applied.

 

1. If Company, Cost Center & Posting Period for Doc Type "PY" is the same as "PD", take "PD" amount

2. In the absence of "PD" for the same Company,  Cost Center & Posting Period, take "PY" amount 

3. In the absence of "PY" for the same Company, Cost Center & Posting Period, do not take "PD" amount 

4. The rest of the Doc Type i.e. AP or JE should remained unchanged

 

Sample data:

Fact Table

CompanyCost CenterPosting PeriodDoc Type Amount 
502222222Apr-21PY         (30,000.00)
502222222Apr-21PD         (30,000.00)
601111111Apr-21PY         (16,000.00)
601111111Apr-21PD         (16,000.00)
502222222Apr-21JE         (12,000.00)
502222222May-21PD         (15,000.00)
601111111May-21PD           (8,000.00)
601111111May-21JE         (14,000.00)
502222222May-21AP         (10,000.00)
502222222Jun-21PY         (24,000.00)
          (175,000.00)

 

Result:

CompanyCost CenterPosting PeriodDoc Type Amount 
502222222Apr-21PD         (30,000.00)
601111111Apr-21PD         (16,000.00)
502222222Apr-21JE         (12,000.00)
601111111May-21JE         (14,000.00)
502222222May-21AP         (10,000.00)
502222222Jun-21PY         (24,000.00)
          (106,000.00)

 

I appreciate any help. Thanks!

1 REPLY 1
Greg_Deckler
Super User
Super User

@Joanne Try this, PBIX is attached below signature. You want Table28 and Page 6.

Measure 3 = 
    VAR __PY = MAXX(FILTER('Table28',[Doc Type]="PY"),[ Amount ])
    VAR __PD = MAXX(FILTER('table28',[Doc Type]="PD"),[ Amount ])
RETURN
    SWITCH(TRUE(),
        NOT(ISBLANK(__PD)) && NOT(ISBLANK(__PY)),__PD,
        NOT(ISBLANK(__PY)) && ISBLANK(__PD),__PY,
        NOT(ISBLANK(__PD)) && ISBLANK(__PY),BLANK(),
        MAX('Table28'[ Amount ])
    )


Measure 3 Total = 
    VAR __Table = SUMMARIZE('Table28',[Company],[Cost Center],[Posting Period],[Doc Type],"__Measure",[Measure 3])
RETURN
    IF(HASONEVALUE('Table28'[Company]),[Measure 3],SUMX(__Table,[__Measure]))

@ me in replies or I'll lose your thread!!!
Check out my External Tool for Power BI Desktop! Microsoft Hates Greg's Quick Measures
YouTube Channel! Microsoft Hates Greg
Check out my latest book!

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

November Power BI Update 768x460.png

Check it Out!

Click here to read more about the November 2021 Updates!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.