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

Get inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.

Reply
Syndicate_Admin
Administrator
Administrator

Contar cuántas veces hay una palabra en una columna

Hi Expertos

Hola, tengo una columna de texto separada por un punto y coma, por ejemplo:

Col1

palabra1;palabra2

palabra1;palabra3

palabra3;

palabra4

palabra1

etc etc

Me gustaría contar cuántas instancias de cada palabra hay en cada fila y tener un total, pero comparándolo con una tabla de palabras posibles, el resultado sería:

palabra 1 = 3

palabra 2 = 1

palabra 3 = 2

etc

La medida siguiente no funciona cuando tiene Word1;Word2

Count = SUMX(SearchWords,IF(LEN(SUBSTITUTE(SearchWords[SearchWords],[Words],""))

AYUDA

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Hola @BlueWhite111
Puede utilizar la función CONTAINSSTRING. He agregado una nueva tabla con todas las palabras únicas, a las que hago referencia en la medida DAX.

Measure = 
VAR _search_word = 
    SELECTEDVALUE ( search_words[search_word] )
VAR _result =
    CALCULATE ( 
        COUNTROWS ( 'Table' ),
        CONTAINSSTRING ( 'Table'[Col1], _search_word )
    )
RETURN
    _result

Resultado:

Barthel_0-1672656864902.png

Hola @Barthel
Gracias por su resposne.
Sólo una consulta 🙂

Supongo que la lógica anterior no funcionará si el mismo nombre aparece en la fila más de una vez es correcto.

significado palabra1; palabra2;palabra1. ¿Cómo debemos manejar esto con la lógica anterior?

@NandanHegde,

Creo que esto es muy difícil de realizar en DAX, y honestamente no tengo una buena respuesta para eso en este momento. Por otro lado, creo que la forma más fácil es editar la tabla en Power Query, dividiendo cada celda en nuevas filas usando el separador. Cada palabra equivale a una fila/columna. De esta manera, aún puede usar la fórmula anterior. De hecho, ya no tiene que usar CONTAINSSTRING y simplemente puede usar una instrucción equals.

Gracias señor perfecto

Syndicate_Admin
Administrator
Administrator

Oye, probablemente puedas probar el siguiente enfoque:

1) Dividir la columna en función del punto y coma

2) Luego transponga para que cada fila sea equivalente a una palabra

3) Luego cree una medida por Resumir

algo como:

RESUMIR(Tabla, Tabla[Columna], "WordCount", CONTAR(Tabla[Columna]))

Syndicate_Admin
Administrator
Administrator

Hola, acabo de intentar esto y tampoco funciona

Nuevo recuento =
Dónde _un = VALOR SELECCIONADO('DimExoskeleton'[Proceso])
Dónde _b = HASONEVALUE('DimExoskeleton'[Proceso])
Dónde _c = countrows( FILTRO('Encuesta diaria', 'Encuesta diaria'[InwhatprocessdidyouusetheExoskel (new)] = _un ))
Devolución
si (_b, si (ISBLANK(_c), 0, _c), ESPACIO EN BLANCO() )

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code FABINSIDER for a $400 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

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

March2025 Carousel

Fabric Community Update - March 2025

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

Top Solution Authors
Top Kudoed Authors