I have a “transaction” table with status, balance and price. I need the dax for for an “if this condition, calculate this, otherwise, calculate this” for each status in the table (an example pbix file is attached)

Conditions are: If the balance is 0 then the total of Status is based on "price’, if the balance is greater than 0 (or my “otherwise”), then the total is based on “balance”

I tried using “switch” but I’m just doing my Dax wrong and can’t figure out the correct way to write it.

StatusA when Bal 0 = CALCULATE( SUM(Transaction[price]), Transaction[status] = “status A”, SWITCH(IF(Transaction[balance]=“0”, sum(Transaction[balance]))))

Assuming this is just a quick sample of your data model. Without any sort of other data (such as date, which I added) the sum of transaction and balance was never zero:

So I added some random dates:

1st things first, create your simple sum of transaction and balance measures:

Sum of Balance =
SUM( 'Transaction'[BALANCE])

Sum Transaction = sum( 'Transaction'[PRICE] )

Then from there you can write a switch statement with a nested if. I didnt quite understand 100% your logic of

Seems like if balance is zero then that logic would produce a zero? Not really here nor there, since the following will show the flow and how you adapt to your needs.

Switch Measure =
SWITCH(
SELECTEDVALUE('Transaction'[STATUS]) --What the switch will test for
,"StatusA", IF( [Sum of Balance] = 0,[Sum Transaction],[Sum of Balance]) --When StatusA, it will then look at the sum of balance. If that is zero, then will show Total Transaction else tot Blance
,"StatusB", IF( [Sum of Balance] = 0,[Sum Transaction],100) --When StatusB, it will look at the the sum of balance. If zero, then sum of transaction, else 100
,"StatusC", IF( [Sum of Balance] = 0,[Sum Transaction],-100) --When StatusC, it will look at the the sum of balance. If zero, then sum of transaction, else -100
)

Thank you but actually there are zeros. (did you see the pbix file?) Maybe I didn’t explain well enough.
For example, if looking at Status A for a card visual with the total
If the balance is 0 then the total of Status A is based on "price’, if the balance is greater than 0 (or my “otherwise”), then the total is based on “balance”

In this case, the total for status A = 50
line 1 =10 (based on price because balance is =0)
line 2=20 (based on balance because balance > 0)
line 3 =30 (based on balance because balance > 0)
line 4 =10 (based on price because balance is =0)

@BrianJ
THANK YOU! That’s wonderful and so helpful, I am soooo close. I did make a change in my last post, I had them backwards (I confused myself) so had I not done that, i bet that dax would have been perfect.
It is correctly,
If Balance = 0 use price
If Balance >0 use balance

Therefore, in your example, StatusA would be “40”
StatusB = 60
StatusC = 30

I am so new to using switch and I thought simply swapping the key measures (total balance and total price) would work but it didn’t. Suggestions?

Switch Balance Price on Status =
CALCULATE(
SWITCH(
SELECTEDVALUE( ‘Transaction’[BALANCE] ),
0, [Total Price], [Total Balance]
),
VALUES(‘Transaction’[STATUS] )
)

I think Nick and I might be standing at the intersection, waiting for each other to go. Here’s my approach, given the better understanding of your requirement from my previous post.

BalPrice =
IF(
'Transaction'[BALANCE] = 0,
'Transaction'[PRICE],
'Transaction'[BALANCE]
)
Sum by Status =
CALCULATE(
SUMX(
'Transaction',
[BalPrice]
),
VALUES( 'Transaction'[STATUS] )
)