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

The Power BI DataViz World Championships are on! With four chances to enter, you could win a spot in the LIVE Grand Finale in Las Vegas. Show off your skills.

Reply
Syndicate_Admin
Administrator
Administrator

Cuente los distintos correos electrónicos que han sido reportados en el contexto seleccionado

Hola a todos,

Han sido días que he intentado encontrar la solución sin éxito.

Objetivo: Crear una medida que devuelva el número de correos electrónicos que SIEMPRE tienen el estado "Informado" para la campaña SELECCIONADA

Power BI.PNG

Por ejemplo:

  • Si selecciono todas las campañas, quiero obtener "Siempre reportado" = 3 (correo electrónico A + C + E)
  • Si selecciono solo la campaña Q1, quiero "Siempre informado" = 3 (correo electrónico A + B + E)
  • Si selecciono la campaña Q2 y Q3, quiero "Siempre informado" = 4 (correo electrónico A + C + D + E)

Me gustaría mostrar esta medida dentro de una tarjeta como un solo número.

Lo que he probado es la siguiente medida:

Siempre reportado =
CALCULAR( DISTINCTCOUNT([correo electrónico])
,FILTER(Tabla1,
CALCULAR(CONTAR([correo electrónico]), ALLEXCEPT(Tabla1, [Campaña], [correo electrónico])
=
CALCULATE(COUNT([email]), ALLEXCEPT(Table1, [Campaign], [email]), [Status] = "Informado")
))

Sin embargo, me da el resultado correcto solo si selecciono una campaña. Si es más, no está funcionando.

Muchas gracias de antemano por su ayuda

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

@Pierroo gracias por el detalle 🙂 extra

Estaba asumiendo que desea clasificar un correo electrónico como "siempre informado" dentro del contexto de filtro actual. ¿Es esto correcto? Si es así, no puede confiar en una columna calculada, ya que indicará si un correo electrónico "siempre se informó" en un contexto de filtro global.

A modo de ejemplo, utilizando los datos de muestra que aparecen a continuación (tomados de una de sus capturas de pantalla).

Los correos electrónicos "siempre denunciados" son:

  • Sin filtros aplicados: A, C, E (3 correos electrónicos)
  • Filtrado por campaña = Q2: A, C, D, E, G (5 correos electrónicos).
    D y G
    se agregan a la lista porque para el segundo trimestre solo se informan.

¿Es esta la lógica que quieres aplicar?

Sin filtrar

OwenAuger_0-1697630123699.png

Campaña = Q2

OwenAuger_1-1697630140687.png

Syndicate_Admin
Administrator
Administrator

@OwenAuger sí que es para otra muestra.
Desafortunadamente no puedo compartirlo, pero lo volví a probar y podría ser bueno!!

De hecho, probé la medida en mi conjunto de datos de miles de registros y, para hacerlo, creo una tabla en el lateral para verificar.

Sin embargo, pensé que estaba sumando el total de cada fila (en el caso de la imagen de abajo, pensé que el total era la suma de todos los "1" (que habrían sido 8)).

Por lo tanto, recreo otra pequeña muestra falsa y se ve bien:

Pierroo_0-1697546409070.png

Sin embargo, para calcular el "siempre informado" para todas las campañas, he creado previamente una columna calculada que pensé que era correcta:

Always Reported = 
   VAR _Countemail = CALCULATE(COUNT([email], ALLEXCEPT(Table1, [email]))

   VAR _CountReported = CALCULATE(COUNT([email], ALLEXCEPT(Table1, [email])), [Status] = "Reported"

 RETURN
  IF( _Countemail = _CountReported, true())

Luego hice un recuento distinto cuando esta columna es igual a verdadera.

Sin embargo, no obtengo el mismo resultado que tú, por eso pensé que no me estaba dando el resultado correcto...

¿Qué te parece? 🙂

Syndicate_Admin
Administrator
Administrator

Gracias por los comentarios @Pierroo

¿Podría dar un ejemplo de una situación en la que la medida no devuelva el resultado esperado, utilizando los datos anteriores o algunos otros datos de muestra?

La medida que sugerí cuenta los distintos correos electrónicos cuyo único valor de estado es "Informado" (dentro de un contexto de filtro determinado). Funcionó para mí con los filtros de ejemplo en su publicación original, pero es posible que me haya perdido algo 🙂

Syndicate_Admin
Administrator
Administrator

Hola @OwenAuger ,

Muchas gracias por su rápida respuesta.
Probé su solución, pero desafortunadamente, no funciona cuando seleccioné varias campañas.
De hecho, me da el resultado correcto si solo selecciono una campaña, pero si selecciono más de una, me da el recuento de los correos electrónicos que han sido al menos una vez iguales a "reportados".
Sin embargo, lo que estoy buscando es el recuento de correos electrónicos que SIEMPRE se han reportado.

Atentamente

Syndicate_Admin
Administrator
Administrator

@Pierroo

Yo sugeriría una medida como esta:

# Emails Always Reported =
COUNTROWS (
    FILTER (
        VALUES ( Table1[Email] ),
        CALCULATE (
            SELECTEDVALUE ( Table1[Status] )
        ) = "Reported"
    )
)

Saludos

Helpful resources

Announcements
Feb2025 Sticker Challenge

Join our Community Sticker Challenge 2025

If you love stickers, then you will definitely want to check out our Community Sticker Challenge!

Jan NL Carousel

Fabric Community Update - January 2025

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

Top Solution Authors