Forum Discussion

PetrM's avatar
PetrM
Frequent Visitor
3 years ago
Solved

Categorizing a Narrative based on keywords

I have a Table containing a Narrative field. I have another table (Categories) with Keyword - Category pairs. I want to add a measure into Table that will search for Keword in Narrative and returns the first corresponding Category it finds. I thought the following could do it

 

 

 

Category = 
VAR NarrativeText = Table[Narrative]
RETURN
    MAXX(
        FILTER(
            Categories,
            CONTAINSSTRING(NarrativeText, Categories[Keyword])
        ),
        Categories[Category]
    )

 

 

 

but it returns the following error: "A single value for column 'Narrative' in table 'Table' cannot be determined. This can happen when a measure formula refers to a column that contains many values without specifying an aggregation such as min, max, count, or sum to get a single result."

Can I correct the formula or is there a better way to do this?

  • PetrM , You have to create this as a column; the above formula

     

    or a measure like

     

    Category =
    VAR NarrativeText = max(Table[Narrative])
    RETURN
    MAXX(
    FILTER(
    Categories,
    CONTAINSSTRING(NarrativeText, Categories[Keyword])
    ),
    Categories[Category]
    )

2 Replies

  • PetrM , You have to create this as a column; the above formula

     

    or a measure like

     

    Category =
    VAR NarrativeText = max(Table[Narrative])
    RETURN
    MAXX(
    FILTER(
    Categories,
    CONTAINSSTRING(NarrativeText, Categories[Keyword])
    ),
    Categories[Category]
    )

    • PetrM's avatar
      PetrM
      Frequent Visitor

      Thanks amitchandak, the column version worked for me. This helped me a lot. I really appreaciate it!