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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Farhan75
Frequent Visitor

Using EXCEPT with ALLEXCEPT and ALLSELECTED

Hi

 

I'm trying to use EXCEPT with ALLEXCEPT and ALLSELECTED to get the list of values in Column1 have been removed by a filter (i.e. the values not selected)

 

CONCATENATEX(
EXCEPT(
ALLEXCEPT('Table1,'Table1'[Column1]),
ALLSELECTED('Table1'[Column1])
)
,'Table1'[Column1],", "
)

 

Error = "Each table argument of 'EXCEPT' must have the same number of columns."

 

To get around this, I tried wrapping a SELECTCOLUMNS function around ALLEXCEPT, but I'm getting a different error

 

CONCATENATEX(
EXCEPT(
SELECTCOLUMNS(ALLEXCEPT('Table1,'Table1'[Column1]),"Column1",'Table1'[Column1]),
ALLSELECTED('Table1'[Column1])
)
,'Table1'[Column1],", "
)
 
Error = "A single value for column "Column1" in table 'Table1' cannot be determined"
 
Hoping somebody can help me out with this please???
6 REPLIES 6
dv2020
New Member

Hi, 

 

I am doing something similar to this, the difference is that I am trying to calculate an average(frmo a different table) for all of the values not selected. This sis the calculation I am using

Trend Chart Other =
IF (
ISBLANK ( [Avg Result] ),
BLANK (),
CALCULATE (
[Avg Result],
EXCEPT (
ALL ( SurveyQuestionQ11[value], SurveyQuestionQ11[ResponseId] ),
ALLSELECTED ( SurveyQuestionQ11[value],SurveyQuestionQ11[ResponseId])
)
)
)
 
Avg Result is a measure from another table but has a relationship to SurveyQuestionQ11. 
The math is not calcualting correctly and I cannot figure out why.
v-piga-msft
Resident Rockstar
Resident Rockstar

Hi @Farhan75,

 

By my tests, the solutions from Zubair_Muhammad are all helpful. 

 

If you have solved you problem, please accept the replies making sense as solution to your question so that people who may have the same question can get the solution directly.

 

If you still need help, please feel free to ask.

 

Best  Regards,

Cherry

Community Support Team _ Cherry Gao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Zubair_Muhammad
Community Champion
Community Champion

@Farhan75

 

Try this one

 

Measure =
CONCATENATEX (
    EXCEPT ( ALL ( Table1[Column1] ), ALLSELECTED ( Table1[Column1] ) ),
    Table1[Column1],
    ", "
)

Regards
Zubair

Please try my custom visuals

@Farhan75

 

Your measure could also work if you make these modifications Smiley Wink

1) In ALLEXCEPT's arguments put all columns other than column1 (in red font below)
2) Instead of Table1[Column1] use only [Column1] because SelectColumns removes data lineage (in red font below)

 

Measure = CONCATENATEX(
EXCEPT(
SELECTCOLUMNS(ALLEXCEPT(Table1,Table1[OtherColumn2],Table1[OtherColumn3]),"Column1",Table1[Column1]),
ALLSELECTED(Table1[Column1])
),Table[Column1],", ")

Regards
Zubair

Please try my custom visuals

Hi @Zubair_Muhammad

 

Thanks for your reply.

 

The reason I am using ALLEXCEPT with Column1 is because I only want to display the values excluded by direct filtering on this column, not by cross filtering on other columns. 

 

I'd already tried your first example, but unfortuantely, this also gives me values excluded by cross filtering. So does your second. Please see example PBIX below.

 

PBIX Example

 

Many thanks for your help so far

 

Kind regards

 

Farhan

Hi @Farhan75,

 

Sorry for the delay.

 

Based on your sample pbix, I found that the problem is caused by the slicer of column1 will be filered by the slicers of column 2 and column 3. 

 

By my tests, I have no better dax ecpression to display the value which will not be filtered by column 1, column2 and column3 at the same time.

 

As a workaround, you could try this measure below and turn off the interaction between the column 2 and column 3 for that measure.

 

 

MyMeasure = --show values DIRECTLY unselected excluding those removed by cross filtering
IF(
    ISFILTERED('Table1'[Column1]), -- checks if filtered
        CONCATENATEX(
            EXCEPT(
                ALL(Table1[Column1]),
                ALLSELECTED(Table1[Column1])
            )
            ,[Column1],", "
        )
    ,"All"
)

Here is your desired output.

 

 

result.PNG

 

Here is the attachment you could refer to.

 

If I get the better solution, I will update here.

 

Best Regards,

Cherry

Community Support Team _ Cherry Gao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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

Top Solution Authors