The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Tengo 4 archivos con la misma información pero en 4 periodos diferentes (marzo, junio, septiembre y diciembre) lo consolide un uno solo y necesito crear 3 indicadores, a través de la variable M
.
Gracias, alguien que me oriente por favor
Solved! Go to Solution.
Ya lo puede hacer, muchas gracias por tu ayuda, estuvo excelente
Proud to be a Super User!
Paul on Linkedin.
Si te he entendido bien, puedes probar lo siguiente:
1) Calcula el número de meses en los que está presente cada variable:
Meses presente = DISTINCTCOUNT('Tabla Datos'[Mes])
2) Calcula si cada variable tiene presencia en diciembre:
Diciembre = IF(MAX('Tabla Datos'[Mes])= 12; 1;0)
3) Calcula el total de meses en los datos
Num Meses = CALCULATE(DISTINCTCOUNT('Tabla Datos'[Mes]); ALL('Tabla Datos'))
Ahora puedes hacer una claúsula "IF" para distinguir según la clasificación que quieres hacer:
Clasificación = IF([Meses presente] = 1 && [Diciembre] = 1; "Nuevo";
IF([Meses presente] = 2 && [Diciembre] =1; "Intermitente";
IF([Meses presente] = [Num Meses]; "Permanente")))
Y obtendrás este resultado:
Si te interesa el archivo PBI, lo puedes descargar de este enlace:
Proud to be a Super User!
Paul on Linkedin.
cedula | Mes |
2345678 | Dicembre |
247888 | Septiembre |
344566 | Junio |
2256777 | Marzo |
247888 | Junio |
666899 | Marzo |
666899 | Dicembre |
Yo quiero construir un filtro, si la cedula solo sale en el mes de Diciembre es "Nuevo", si la cédula se repite en los meses de Marzo, Junio y Septiembre es permanente, y por último si la cédula está en diciembre y solo en alguno de estos meses (marzo, junio o septiembre) es Intermitente. Me podria orientar por favor?
Disculpa ya que creo que no vi tu última publicación cuando puse mi propuesta de solución. La he adaptado para los datos en la tabla que has puesto, incluyendo una cédula extra (111111111) para que se vea una opción "permanente".
Aquí tienes como queda, incluyendo un filtro para que puedes ver sólo un tipo de cédula
Y si te interesa el archivo, aquí tienes el enlace:
Archivo PBIX
Proud to be a Super User!
Paul on Linkedin.
Buen dia, disculpa no no abre el archivo porque no tengo la última versión de Power bi y no lo quiero descargar ya que sino debo modificar varios informes, sera que me lo puedes enviar en la versión anterior, Gracias
No tengo la versión anterior instalada! Seguro que si instalas la versión nueva te afectaría a los informes ya hechos? (en teoría no es así: los archivos antiguos son compatibles a las nuevas versiones de PBI; no así a la inversa...)
Bueno, por si acaso, te detallo el proceso que he seguido tanto para los cálculos como para crear la tabla para el filtro (he retocado lo que he puesto antes para que el filtro permita selección multiple; la anterior sólo permitíe selección de un valor de Cédula).
Primero las medidas para los cáclulos (si ves que pone "Texto" en alguna nombre de medida no hagas caso - es para diferenciar de las medidas que hice originalmente):
1) Cálcular el número total de meses en el modelo:
Num Meses (texto) = CALCULATE(DISTINCTCOUNT('Datos Natalipc36'[Mes]); ALL('Datos Natalipc36'))
2) Cálcular el número de meses en los que cada Cédula tiene presencia:
Meses con presencia = DISTINCTCOUNT('Datos Natalipc36'[Mes])
3) Cálcular si una Cédula tiene presencia en el mes de diciembre:
Está en Diciembre = CALCULATE(DISTINCTCOUNT('Datos Natalipc36'[Cedula]);
FILTER('Datos Natalipc36';
'Datos Natalipc36'[Mes] = "Diciembre"))
4) Clasificar las cédulas en función de los criterios que estableciste originalmente:
Clasificación (Mes texto) = IF([Meses con presencia] = 1 && [Está en Diciembre] = 1; "Nuevo";
IF([Meses con presencia] = 2 && [Está en Diciembre] =1; "Intermitente";
IF([Meses con presencia] = [Num Meses (texto)]; "Permanente"; "Otros")))
Ahora, para poder tener un filtro que te permita seleccionar por tipo de Cédula, hace falta crear esta tabla (con la opción "New Table" del menú):
Tabla Filtro = ADDCOLUMNS(VALUES('Datos Natalipc36'[Cedula]);
"Clas. Cédula"; [Clasificación (Mes texto)];
"Indice"; SWITCH(TRUE();
[Clasificación (Mes texto)] = "Nuevo"; 1;
[Clasificación (Mes texto)] = "Permanente"; 2;
[Clasificación (Mes texto)] = "Intermitente"; 3;
4))
(La columna que creo de "Índice" sirve para dar un orden a los valores del filtro: cambia los números en la función de SWITCH a tu gusto).
La tabla que hemos creado queda así:
Esta tabla ya te da los resultados que buscas para la clasificación:
Las columnas "Meses con presencia" y "Está en Diciembre" las he incluido en la tabla para que puedas comprobar que las medidas funcionan. No es necesario que las incluyas en tu tabla final si no quieres: funcionará igual con o sin.
Incluso puedes unir esta tabla con la tabla de datos principal por si tienes que realizar otro tipo de cálculos.
Creo que no me he saltado ningún paso.
Te dejo de nuevo el enlace por si al final descargas la última versión de Desktop:
Proud to be a Super User!
Paul on Linkedin.
Gracias, me ha funcionado casi todo excepto la Tabla Filtro que me da la sifuiente advertencia:
"La expresión hace referencia a varias columnas. No se pueden convertir varias columnas a un valor escalar"
Ya lo puede hacer, muchas gracias por tu ayuda, estuvo excelente
Proud to be a Super User!
Paul on Linkedin.
Me temo que sin ver la estructura de las tablas etc no puedo ser de ayuda. Puedes de alguna forma compartir el archivo PBIX (OneDrive, Google Drive, Dropbox...) cambiando datos que sean confidenciales?
Si creas una tabla usando el campo de Cedula de tu tabla de datos y la medida [Clasificación (Mes texto)] te da error?
Puedes ponernos la medida entera (la de [Clasificación (Mes texto)) para ver si hay algún error?
Proud to be a Super User!
Paul on Linkedin.
Hi, @Natalipc36
Based on your description, I creaeted data to reproduce your scenario.
You can create a calculated column and a measure as follows.
calculated column:
Month = MONTH('Table'[Date])
measure:
metrics =
var t = SUMMARIZE('Table','Table'[Month],"Appear",IF(CALCULATE(COUNTROWS('Table'),'Table'[IsAppear]=1)>0,TRUE(),FALSE()))
return
IF(
COUNTROWS(FILTER(t,[Appear]=TRUE()))=1 && COUNTROWS(FILTER(t,[Appear]=TRUE() && [Month]<>12))=0,
"Nuevo",
IF(
COUNTROWS(FILTER(t,[Appear]=TRUE()))=12,
"Permanente",
"Intermitente"
)
)
Best Regard
Allan
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
¿Ya ha combinado los 4 archivos en PowerBI? ¿Puede publicar una muestra de los datos sin procesar y una muestra de lo que M está buscando? <Using Google Translate>
Proud to give back to the community!
Thank You!
User | Count |
---|---|
78 | |
77 | |
37 | |
32 | |
29 |
User | Count |
---|---|
91 | |
79 | |
57 | |
48 | |
48 |