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

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

Reply
Anonymous
Not applicable

Calculate: A table of multiple values was supplied where a single value was expected.

Hi guys,

Last year my collegue wrote a dax formula for my BI report. Unfortunately he is no longer working at my firm. Couple of days ago the datasource of my report was moved into the cloud. I already changed the location of the datasource in my report, but the Dax formula he wrote for me doesn't work since then. I tried a couple of things but it wouldn't work. The error is: A table of multiple values was supplied where a single value was expected. Can someone help me? Thank you!

The dax formula: 

 
EmployeeKey =
CALCULATE(
DISTINCT('DimEmployee'[EmployeeKey]),
FILTER('DimEmployee',
'FactActualHoursAll'[TT_EMP_ID] = 'DimEmployee'[EmployeeId] &&
'FactActualHoursAll'[TT_date] >= 'DimEmployee'[RowEffectiveDate] &&
'FactActualHoursAll'[TT_date] <= 'DimEmployee'[RowExpirationDate]
)
)
 
klchan06_0-1640183457207.png

 

 



1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi  @Anonymous ,

You can try to add all() or allselect() to the function

EmployeeKey =
CALCULATE (
    DISTINCT ( 'DimEmployee'[EmployeeKey] ),
    FILTER (
        ALLSELECTED ( 'DimEmployee' ),
        'FactActualHoursAll'[TT_EMP_ID] = 'DimEmployee'[EmployeeId]
            && 'FactActualHoursAll'[TT_date] >= 'DimEmployee'[RowEffectiveDate]
            && 'FactActualHoursAll'[TT_date] <= 'DimEmployee'[RowExpirationDate]
    )
)

Best Regards,

Liu Yang

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

7 REPLIES 7
Anonymous
Not applicable

Hi  @Anonymous ,

You can try to add all() or allselect() to the function

EmployeeKey =
CALCULATE (
    DISTINCT ( 'DimEmployee'[EmployeeKey] ),
    FILTER (
        ALLSELECTED ( 'DimEmployee' ),
        'FactActualHoursAll'[TT_EMP_ID] = 'DimEmployee'[EmployeeId]
            && 'FactActualHoursAll'[TT_date] >= 'DimEmployee'[RowEffectiveDate]
            && 'FactActualHoursAll'[TT_date] <= 'DimEmployee'[RowExpirationDate]
    )
)

Best Regards,

Liu Yang

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

VahidDM
Super User
Super User

Hi @Anonymous 

 

 

Can you post sample data as text and expected output?

please see this post regarding How to Get Your Question Answered Quickly:
https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

The most important parts are:
1. Sample data as text, use the table tool in the editing bar
2. Expected output from sample data
3. Explanation in words of how to get from 1. to 2.
4. Relation between your tables

Appreciate your Kudos!!
LinkedIn:www.linkedin.com/in/vahid-dm/

PaulOlding
Solution Sage
Solution Sage

Hi @Anonymous 

It looks like you're trying to add a calculated column onto your fact table from a slowly changing dimension, DimEmployee.

The issue is DISTINCT returns a table, and tables can't be embedded in another table.

You should be using a function that returns a scalar.  You could have MAX, MIN, or perhaps SELECTEDVALUE, with a default for when there's more than one row in DimEmployee that meets the filter condition.

 

Anonymous
Not applicable

Hi, thanks for your response! How do i implemented this in the dax formula? 

HotChilli
Super User
Super User

Test it by replacing DISTINCT with DISTINCTCOUNT.  If you get results of greater than 1, that's the problem.

 

Anonymous
Not applicable

Hi, I did it. I get 10 rows of number 2 and that's it. How do i fix this? 

klchan06_0-1640189236765.png

 

So you have multiple rows in DimEmployee that meet this condition

 
'FactActualHoursAll'[TT_EMP_ID] = 'DimEmployee'[EmployeeId] &&
'FactActualHoursAll'[TT_date] >= 'DimEmployee'[RowEffectiveDate] &&
'FactActualHoursAll'[TT_date] <= 'DimEmployee'[RowExpirationDate]
 
I would try to find out why.  Choose a row of the fact table from your screenshot and see which rows are matching in DimEmployee.
You mentioned the datasource has moved.  Just throwing out ideas but, as your condition includes dates, perhaps there's something different about the date formats in the new datasource?

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

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