Año DAX () No devuelve el año

Un usuario Pregunto ✅

Dave

Obtuve algunos resultados inesperados al usar DAX Year (); el año no se devuelve en algunos casos. Como comparación, creé una nueva columna en el editor de consultas, que siempre devolvió el valor correcto. A continuación se muestran mis fórmulas y resultados en una tabla:

DAX: Year = Year (SampleSheet[Date])

Consulta de edición (M): Fecha.Año ​​([Date])

PowerBIYearIssue.png

¿Hay alguna razón por la que YEAR () no siempre devuelve el año real?

Además, cuando es posible hacer lo mismo en el Editor de consultas y en DAX, ¿existen algunas pautas sobre las cuales usar? He investigado un poco esto y no he podido encontrar una buena respuesta.

fbrossard

Hola Dave,

Cuando agrega una columna calculada usando la función DAX Year (), construye un número entero por columna.

Y, de forma predeterminada, todas las columnas de números enteros se resumen mediante el uso de suma, por eso tiene el total en la columna de año.

Abra su modelo, seleccione su tabla y la columna «año», vaya al menú «Modelado» y cambie la propiedad «Resumen predeterminado» de «Suma» a «No resumir»

PBI_IntegerColumn_DoNotSummarize.png

ImkeF

Puede encontrar algunos aspectos de rendimiento de M vs DAX aquí:

https://blog.oraylis.de/2016/02/relative-week-column-with-dax-power-query/

«… En realidad, la versión de Power Query es un poco más rápida, porque Vertipaq-Engine puede hacer una mejor compresión con una columna que se establece durante la carga de datos. Las columnas generadas por DAX se crearán durante el procesamiento del modelo. Esto tiene dos impactos negativos . Primero, la compresión no será tan buena y segundo cada vez que se procese el cubo, por ejemplo, cuando se crea una nueva medida, Power BI Desktop volverá a crear las dos columnas, lo que llevará más tiempo … «

fbrossard

Hola Dave,

Cuando agrega una columna calculada usando la función DAX Year (), construye un número entero en una columna.

Y, de forma predeterminada, todas las columnas de números enteros se resumen mediante el uso de suma, por eso tiene el total en la columna de año.

Abra su modelo, seleccione su tabla y la columna «año», vaya al menú «Modelado» y cambie la propiedad «Resumen predeterminado» de «Suma» a «No resumir»

PBI_IntegerColumn_DoNotSummarize.png

Dave

En respuesta a fbrossard

Muchas gracias! Establecer el «Resumen predeterminado» en «No resumir» resolvió mi problema. Además, gracias por todos los comentarios sobre cuándo usar M vs DAX.

Greg_Deckler

En respuesta a fbrossard

Brillante, ni siquiera vi eso.

fbrossard

En respuesta a Greg_Deckler

Gracias @Greg_Deckler.

@ Dave, a veces puede tener una columna de números enteros que desee sumar de forma predeterminada.

Sin embargo, puede modificar la función de agregación en cualquier momento para cualquier objeto visual simplemente seleccionándolo:

PBI_IntegerColumn_ChangeAggregateFunctionInVisual.png

Greg_Deckler

Algo inestable, que no se puede recrear. Estaba usando «Ingresar datos» y simplemente escribí los valores de fecha y hora como se muestra en su ejemplo a continuación. Todo estuvo bien. ¿Cuál es la fuente de datos? En su modelo, si selecciona su columna Fecha, en la cinta de Modelado, ¿el Tipo de datos está configurado en «Fecha / Hora» y el Formato es «* 3/14/2001 1:30:15 PM (G)»?

En cuanto a M versus DAX, diría que es una elección bastante obvia en su caso. 🙂

En serio, sin embargo, hay diferentes escuelas de pensamiento allí. Una escuela de pensamiento es hacer todo lo humanamente posible en M para transformar los datos a la forma en que los desea antes de que lleguen a su modelo. Sin embargo, también se debe considerar la compatibilidad y el mantenimiento. Por ejemplo, si tengo que hacer parte del trabajo en DAX, prefiero hacerlo todo en DAX para no mezclar idiomas. Nadie quiere apoyar una mezcla de tristeza en C #, java, perl, ruby. Y, en mi opinión, quién lo mantendrá a largo plazo también importa en términos de sus habilidades. ¿Pueden manejar M o DAX se adapta mejor?

Deja un comentario

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