Función DAX para CONTAR.SI y / o CALCULAR

Un usuario Pregunto ✅

ksobota

Hola,

Soy bastante nuevo en Power BI y soy aún más nuevo en el uso de funciones DAX. Durante años he trabajado en Excel y sé cómo haría esto allí, pero encuentro que la misma fórmula que usaría allí no funciona en Power BI. Básicamente, necesito el equivalente en DAX de la función CONTAR.SI (como = CONTAR.SI (B $ 1: B $ 50, D11)) en Excel.

Tengo dos mesas. En mi tabla EMPLEOS, la columna Member_C contiene los ID de usuario de las personas que tienen o han tenido un trabajo. Si una persona ha tenido más de un trabajo, su ID de usuario aparecerá más de una vez en esta columna, una vez por cada trabajo que tenga / haya tenido. En mi tabla INDIVIDUAL, la columna ID enumera todas las ID de usuario en el sistema.

Lo que quiero hacer es configurar una nueva columna en la tabla INDIVIDUAL que cuenta la cantidad de veces que aparece una ID de usuario en la tabla EMPLEOS si coincide con la ID de usuario de cada fila en la tabla INDIVIDUAL.

Si tuviera que hacer esto en Excel, crearía una columna en mi tabla INDIVIDUAL y cada celda tendría la fórmula: = CONTAR.SI (‘EMPLEOS’! B $ 1: B $ 10, D9)

Necesito averiguar cuál sería el equivalente de hacer eso en DAX para que para cada fila en la tabla INDIVIDUAL, mire el valor en la columna ID y cuente cuántas veces ese valor específico aparece en la tabla EMPLEOS.

¡Cualquier sugerencia sería muy apreciada!

¡Gracias!

Hola @ksobota,

Según su escenario, puede usar el DAX a continuación en su tabla INDIVIDUAL.

CountUser = CALCULATE (COUNTA (EMPLEOS[Member_C]), FILTRO (TODOS (EMPLEOS), EMPLEOS[Member_C]= INDIVIDUAL[User_ID]))

Capture.PNG

Saludos,

Charlie Liao

Jahspi

Hola !

Soy nuevo en PowerBI y no puedo encontrar una fórmula adecuada para contar el número de apariciones de un valor filtrado.
Tengo dos mesas :

Cuadro A:

-PermissionID (PrimaryKey) con solo valores distintos

Cuadro B:

-PermissionID (ForeignKey) con valores no distintos

-AreaFrom (en blanco o no)

Me gustaría agregar una columna de cálculo en la Tabla A para contar el número de veces que AreaFrom está en blanco para cada PermissionID (Tabla A).

Intenté algo así pero sin éxito:

Occurence = 
   COUNTX(
       'public ticket_event_data';
             FILTER(
                'public ticket_event_data';'public ticket_event_data'[area_from_id]=BLANK()
                )
   )

Tienes alguna sugerencia ?

Gracias.

EILOOP

En respuesta a Jahspi

Jahspi,

Depende de lo que intente hacer exactamente.

Hay un comando DAX para CountBlank (ColumnName) y luego, para aplicar un filtro, debe agregar un Calcualte al frente.

Algo como esto Calcular (CountBlank (Column_with_Blanks), Filter (Table_ID, Table_ID[Primary_Key]= Table_Blank[Blank_ID]))

También hay otras formas de hacer esto; pero lo principal que hay que recordar es que si quieres filtrar u obtener un subconjunto, he descubierto que siempre pongo un Calcualte al frente.

Saludos,

EILOOP

Jahspi

En respuesta a EILOOP

Hola,

Gracias por tu respuesta. Sin embargo, la fórmula ya me da un número incoherente.

CALCULATE(COUNTBLANK('public ticket_event_data'[area_from_id]);FILTER('public ticket_event_data';'public ticket_event_data'[permission_id]='public magic_people'[permission_id]))

¿Hay algo de malo en esto?

Gracias por tu ayuda !
Buen fin de semana.

prajanto

Hola,

Quiero preguntar si está en una tabla con el nombre Compl y cómo se cuenta el número del 100%.

ejemplo: 100%

100%

100%

0%

0%

el resultado es 5100%,

Si en Excel usa COUNTIF, ¿qué tal cómo hacerlo en power bi?

Gracias

Prajanto

EILOOP

En respuesta a prajanto

Pude lograr esto a través de variables.

Por ejemplo, quería contar las veces que apareció el nombre de un empleado en la columna de mi nombre de empleado, ya que cada fila es única para toda la columna, almacené este valor como una var en Formual Bar.

Esto funcionará como un Count If basado en el valor actual de Row.

Nombre de columna =

var emplaoyee_name = Tabla[Employee Name]

var Resultado = CALCULAR (CONTAR (Tabla[Employee Name]), FILTRO (Tabla, Tabla[Employee Name]= nombre_empleado))

Regreso

Salir

El código anterior producirá la salida de recuento en la siguiente tabla:

Nombre de empleado Contar
A 3
A 3
A 3
B 2
B 2
C 1

RossM

En respuesta a EILOOP

Esto funcionó para mí, ¡gracias!

Anónimo

En respuesta a EILOOP

está funcionando, muchas gracias ~

jkrish_09

Hola,

Tengo una lista de documentos de compra en una columna y quiero saber cuántas veces se repite una orden de compra en la misma columna. En Excel usaré Countif, mientras que cuál será la mejor fórmula para usarlo en Power Bi.

P.ej.

Recuento de resultados esperados del número de po si (en Excel)

12345 3 = countif ($ D $ 8: $ D $ 17; D8)

23456 2

35658 1

12345 3

12345 3

23456 2

cartecj

Tengo un problema similar, pero esta vez quiero replicar = COUNTIF ($ J $ 2: J2, J2)

Así que quiero que la tabla cuente cada una de las instancias en las que se ve ese valor. Ver el siguiente ejemplo

Kris 1

Kris 2

Kris 3

Juan 1

Ed 1

Kris 4

Ed 2

zairol_hamdan

En respuesta a cartecj

Hola, yo también tengo este problema. ¿Lograste resolverlo? Tks

EILOOP

En respuesta a zairol_hamdan

En la página 2 del hilo …

Pude lograr esto a través de variables.

Por ejemplo, quería contar las veces que apareció el nombre de un empleado en la columna de mi nombre de empleado, ya que cada fila es única para toda la columna, almacené este valor como una var en Formual Bar.

Esto funcionará como un Count If basado en el valor actual de Row.

Nombre de columna =

var employee_name = Tabla[Employee Name]

var Resultado = CALCULAR (CONTAR (Tabla[Employee Name]), FILTRO (Tabla, Tabla[Employee Name]= nombre_empleado))

Regreso

Salir

mamoormasoomi

En respuesta a cartecj

¿Encontraste la respuesta a la pregunta? Tengo un problema similar. Consulte a continuación y avíseme si puede ayudarme a encontrar la solución.

Power BI.jpg

Anónimo

En respuesta a mamoormasoomi

Hola a todos,

Estoy buscando una consulta similar. He creado columnas calculadas en Power BI.

Necesitamos calcular «Recuento total de envíos» en Power BI. Para calcular el recuento total de envíos, debemos aplicar dos condiciones:

  1. Si el «Plant_Shpto_Shpment_Gross KG» es 0 entonces el recuento de envíos será 0.
  2. En segundo lugar, tenemos que comparar las filas consecutivas del «Plnt_Ship-to_Shpmt_Mat» columna. Consulte la instantánea a continuación para ver la fórmula utilizada para obtener el recuento de envío deseado en Sobresalir. Si los valores en las filas consecutivas son iguales, debería devolver 0 como recuento de envío2018-07-25 15_48_55-MS_TotalShpmt - Excel.png
  3. He usado la siguiente fórmula en Power BI pero muestra un error.

    Fórmula DAXFórmula DAX¿Alguien puede ayudarme a obtener el resultado?

Gracias

TaniaR

En respuesta a Anónimo

Hola.

Tengo una situación similar, pero necesito un resultado de recuento distinto.

Cuadro A:

1. Columna Nombre del empleado

Cuadro B:

1. País

Objetivo: contar el nombre de empleado distinto por Alemania y Francia, ÚNICAMENTE.

  • A continuación se muestra lo que he hecho.
Medir = calcular (DISTINCTCOUNT (‘TABLA A'[Employee Name]; FILTRO (‘Tabla B’; ‘Tabla B (2)'[Country]= «Alemania» && Tabla B (2) ‘[Country]= «Francia.
  • Error: Se pasaron demasiados argumentos a la función DISTINCTCOUNT. El recuento máximo de argumentos para la función es 1.
¿Alguien puede ayudar a definir la función de escritura?
Gracias de antemano.

EILOOP

En respuesta a TaniaR

Con suerte, esta vez el foro se actualizará (intento 6 para cargar el resultado)

Esto es lo que pidió:

CALCULATE (DISTINCTCOUNT (‘Tabla'[Employee]), FILTRO (‘Tabla’, ‘Tabla'[Country]= «Alemania» || ‘Tabla'[Country]= «Francia»))

No creo que haya cerrado inicialmente su DistinctCount que arrojó el error original.

Si necesita un valor único para una tarjeta o widget de KPI, también puede lograrlo agregando la tarjeta de KPI a un informe. Hacer que el empleado sea el vlaue y luego agregar el país como filtro a la tarjeta de KPI y filtrar la imagen solo a Alemania y Francia.

Saludos.

TaniaR

En respuesta a EILOOP

Funcionó Gracias.

Anónimo

En respuesta a Anónimo

Gracias por la pronta respuesta.

Intenté cambiar el tipo de datos pero debido a «0101_150190142_DRX0062220_1720.91«tipo de valores da error como» No se puede convertir el valor «0101_150190142_DRX0062220_1720.91‘de tipo Text para escribir Integer «.

SPG

En respuesta a Anónimo

Entonces esa no es la columna que tienes que sumar. Busque la columna donde tiene el valor numérico.

Anónimo

En respuesta a SPG

ok … en realidad quiero encontrar «envío total» para una planta y material en particular y el resto, otros cálculos se basan en ese recuento de envíos. En lugar de usar SUM, intenté usar Count / Distinct pero no da la salida correcta. También estoy tratando de averiguarlo al revés.

Gracias 🙂

SPG

En respuesta a Anónimo

Parece que el tipo de columna Plant_Ship-to_Shipment_Material está establecido en Text. Cambiarlo a Número

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *