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
Anonymous
Not applicable

Add column based on a list from another table

I have two tables. Table 1 contains a list of keywords with the associated category. Table 2 contains a summary and description of work to be done. I want to calculate a column in Table 2 that will seach for values from the summary and description columns in Table 2 and then search the keywords column in Table 1 to see if any of the keywords are contained in the text. If found assign it the corresponding category for the keyword. If not, mark it Other.

 

Here is a simplified version of my data:

 

Table 1:

KeywordCategory
WIRINGNetwork
ROUTERNetwork
PCWorkstation
VMServer

 

Table 2: I'd like the results to populate in the Category column

SummaryDescriptionCategory
NETWORK CABLINGTHIS WORK IS TO REROUTE NETWORK WIRINGNetwork
ROUTER CONFIGTHIS IS TO CONFIGURE ROUTER 2Network
WORKSTATION REIMAGEREIMAGE BOB'S PCWorkstation
VM CONFIGURECONFIGURE VIRTUAL MACHINEServer
BATTERY REPLACEMENTREPLACE THE BATTERIES IN BOB'S MOUSEOther
1 ACCEPTED SOLUTION
AlB
Super User
Super User

Hi @Anonymous

 

Try this for your calculated column:

 

Category = 
VAR _ResultCategory =
    CONCATENATEX (
        VALUES ( Table1[Keyword] );
        IF (
            (
                FIND ( Table1[Keyword]; Table2[Summary]; 1; 0 ) > 0
                    || FIND ( Table1[Keyword]; Table2[Description]; 1; 0 ) > 0
            );
            LOOKUPVALUE ( Table1[Category]; Table1[Keyword]; Table1[Keyword] )
        )
    )
RETURN
IF(LEN(_ResultCategory)=0;"Other";_ResultCategory)

 

Code formatted with   www.daxformatter.com

View solution in original post

2 REPLIES 2
AlB
Super User
Super User

Hi @Anonymous

 

Try this for your calculated column:

 

Category = 
VAR _ResultCategory =
    CONCATENATEX (
        VALUES ( Table1[Keyword] );
        IF (
            (
                FIND ( Table1[Keyword]; Table2[Summary]; 1; 0 ) > 0
                    || FIND ( Table1[Keyword]; Table2[Description]; 1; 0 ) > 0
            );
            LOOKUPVALUE ( Table1[Category]; Table1[Keyword]; Table1[Keyword] )
        )
    )
RETURN
IF(LEN(_ResultCategory)=0;"Other";_ResultCategory)

 

Code formatted with   www.daxformatter.com

Anonymous
Not applicable

Works perfectly. Thanks!

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.