cancel
Showing results for
Did you mean:

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Helper V

## DAX: Selectedvalue in IF doesn't work

Hi guys,

I have the following measure:

Werkuren per maand =
IF (
SELECTEDVALUE ( Workers[Name] ) = "Test Persoon";
CALCULATE ( SUM ( 'Calendar'[Werkdagen 4 dagen] ) ) * [Werkuren 9];
CALCULATE ( SUM ( 'Calendar'[IsWorkDay 5 dagen] ) ) * [Werkuren 8]
)

This doesn't work in my table, see image below:

I've tested it with BLANK() and it looks it doesn't recognize the workername because BLANK() gives me the expected value.

If I would like to add more names to the formula, I get the following error:

Werkuren per maand =
IF (
SELECTEDVALUE ( Workers[Name] ) = "Test Persoon" || "Test Achternaam";
CALCULATE ( SUM ( 'Calendar'[Werkdagen 4 dagen] ) ) * [Werkuren 9];
CALCULATE ( SUM ( 'Calendar'[IsWorkDay 5 dagen] ) ) * [Werkuren 8]

Cannot convert type Text to type True / False.

Besides this piece of formula I would like to extend it with more IF situations. Does this work like this?

[i]example[/i]

Werkuren per maand =
IF (
SELECTEDVALUE ( Workers[Name] ) = "Test Persoon";
CALCULATE ( SUM ( 'Calendar'[Werkdagen 4 dagen] ) ) * [Werkuren 9];

IF (
SELECTEDVALUE ( Workers[Name] ) = "Test Achternaam";
CALCULATE ( SUM ( 'Calendar'[IsWorkDay 5 dagen] ) ) * [Werkuren 8];

CALCULATE ( SUM ( 'Calendar'[IsWorkDay 5 dagen] ) ) * [Werkuren 9];
)

I think the 'IF' scenario's will be limited to 3 IF's max so I think this option will be allright?

1 ACCEPTED SOLUTION
Community Champion

Alright then!

Then i have some things that I would like you to check:

* Do a new measure, Measure = SELECTEDVALUE(Workers[Name])

* Place this measure next to the name column and compare the values. If they are not the same something is off.

* Also check the format of the name column.

I tried to recreate your problem but mine seems to work...

```hours/month = IF(SELECTEDVALUE(Table1[Person])="TestP";
SUMX(Table1;Table1[9workinghours]*Table1[9hrmonthdays]);
SUMX(Table1;Table1[8workinghours]*Table1[8hrmonthdays])
)```

7 REPLIES 7
Community Champion

That result seems to indicate that selectedvalue() is finding more than one result in the name column. Have you filtered in correctly to only have Test Persoon?

/ J

Helper V

@tex628

I've tested it with multiple values (for example test person, test person 1, test person 2) but I get the same results. Or do I misunderstand your reply? Do you need more data?

As I've posted before

Werkuren per maand =
IF (
SELECTEDVALUE ( Workers[Name] ) = "Test Persoon";
CALCULATE ( SUM ( 'Calendar'[Werkdagen 4 dagen] ) ) * [Werkuren 9];
CALCULATE ( SUM ( 'Calendar'[IsWorkDay 5 dagen] ) ) * [Werkuren 8]
)

So normally this would work with this test person.

Community Champion

Selectedvalue(Column, alternative) works like this:

The function looks into a specific column and if there is only one value in that column it returns that specific value.

If there are more than one value in your column Selectedvalue will return the specified alternative or blank() if you did not specify an alternative.

Due to the fact that your first if statement "Selectedvalue(table[column]) = blank()" returns true - this makes me think that there is currently more values that only test persoon in that column.

Place a slicer and filter on test persoon to make sure that there is only one distinct value in that column.

Im sorry that this might be messy, but im quitting work now so im a little stressed with the typing.

Br,

J

Helper V

Hi @tex628 ,

I know what you mean but it doesn't seem to work. Look at my example below, where my DAX is:

Case 1:

Werkuren per maand =
IF (
SELECTEDVALUE ( Workers[Name] ) = "Test Persoon";
CALCULATE ( SUM ( 'Calendar'[Werkdagen 4 dagen] ) ) * [Werkuren 9];
CALCULATE ( SUM ( 'Calendar'[IsWorkDay 5 dagen] ) ) * [Werkuren 8]
)

Case 2:

Werkuren per maand =
IF (
SELECTEDVALUE ( Workers[Name] ) = "Test Werknemer";
CALCULATE ( SUM ( 'Calendar'[Werkdagen 4 dagen] ) ) * [Werkuren 9];
CALCULATE ( SUM ( 'Calendar'[IsWorkDay 5 dagen] ) ) * [Werkuren 8]
)

It seems to effect the totals, but the values for each month don't change. So: the total is right (the 'true' in my statement), the values each month are wrong (the 'false' in my statement).

I can't find the right way to do this.

Community Champion

Alright then!

Then i have some things that I would like you to check:

* Do a new measure, Measure = SELECTEDVALUE(Workers[Name])

* Place this measure next to the name column and compare the values. If they are not the same something is off.

* Also check the format of the name column.

I tried to recreate your problem but mine seems to work...

```hours/month = IF(SELECTEDVALUE(Table1[Person])="TestP";
SUMX(Table1;Table1[9workinghours]*Table1[9hrmonthdays]);
SUMX(Table1;Table1[8workinghours]*Table1[8hrmonthdays])
)```

Post Prodigy

Brilliant answer @tex628 It worked for me as well.

Helper V

@tex628 , thanks a lot. You made my day! I don't know exactly how but it works and that's fine to me.

Announcements

#### New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

#### Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.

#### Fabric certifications survey

Certification feedback opportunity for the community.

Top Solution Authors
Top Kudoed Authors