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
Plfrcs
Frequent Visitor

Return a value from another table with row count parity conditions

Hi

 

I'm trying to return value from another table by checking uneven parity of counting row with calculations of conditions.

 

Currently i have to use multiple colum to check for each name wich ID is corresponding.

 

Capture d'écran 2023-12-01 230610.png

 

Is there a way to optimize this calculation which is too heavy to be publish with a large dataset ?

 

Here is the actual formula for each column :

VAR ID =  Table1[ID]

RETURN
IF(
    ISEVEN(
        SUMX(
            ADDCOLUMNS(
                    GENERATE(FILTER(Table1, Table1[ID] = ID ),
                     Table2 ),"@", INT ( (Table2[Name]="X")  && (Table1[Col1]-Table2[A]=Table1[Col2]))),
            [@] 
            )
        ),
    "No","Yes")

 

And the formula for deduce the name

 

Name = IF(Table1[Check X]="Yes","X",IF(Table1[Check Y]="Yes","Y",IF(Table1[Check Z]="Yes","Z","/")))

 

Thx

2 ACCEPTED SOLUTIONS
Ahmedx
Super User
Super User

Plfrcs
Frequent Visitor

Thank's for Ahmedx for you solution. In the meantime I've found a solution that seems to perform better when refreshing. 

 

 

Name = 
VAR __ID =  'Desired Tablet'[ID]
VAR __datas = ADDCOLUMNS(GENERATE ( FILTER ( Table1, 'Table1'[ID] = __ID ), FILTER(Table2, Table1[Col1]-Table2[A]=Table1[Соl2])),"@",1)
VAR __datassummerize = GROUPBY(__datas,Table1[ID],[Name],"@",SUMX(CURRENTGROUP(),[@]))
RETURN
MAXX(
   FILTER(__datassummerize, 
      ISODD([@])
   ),
   [Name]
)

 

 

View solution in original post

2 REPLIES 2
Plfrcs
Frequent Visitor

Thank's for Ahmedx for you solution. In the meantime I've found a solution that seems to perform better when refreshing. 

 

 

Name = 
VAR __ID =  'Desired Tablet'[ID]
VAR __datas = ADDCOLUMNS(GENERATE ( FILTER ( Table1, 'Table1'[ID] = __ID ), FILTER(Table2, Table1[Col1]-Table2[A]=Table1[Соl2])),"@",1)
VAR __datassummerize = GROUPBY(__datas,Table1[ID],[Name],"@",SUMX(CURRENTGROUP(),[@]))
RETURN
MAXX(
   FILTER(__datassummerize, 
      ISODD([@])
   ),
   [Name]
)

 

 

Ahmedx
Super User
Super User

pls try this

Screenshot_2.png

Screenshot_1.png

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.