MIN con varias columnas

Un usuario Pregunto ✅

Kristofferaabo

Hola,
Tengo problemas para obtener el valor mínimo de las fechas devueltas en más de dos columnas.

Por ejemplo, las columnas C1, C2, C3, C4 y C5.

¿Cómo puedo obtener una columna o una medida que devuelva el valor mínimo para cada fila en estas columnas?

Gracias

Kristoffer

DobleJ

Hola Kristoffer

Podría crear una nueva columna con DAX y usar la función MIN(). Como MIN() solo toma 2 argumentos, debe anidarlos:

MinValue = MIN(MIN(MIN(MIN(Demo[C1],Demo[C2]),Demo[C3]),Demo[C4]),Demo[C5])

Puede haber una manera más fácil que no conozco.

¡Espero que esto ayude!

JJ

Zubair_Muhammad

En respuesta a DobleJ

Hola @Kristofferaabo

Puede utilizar esta columna calculada

Column =
VAR temp = { Table1[c1], Table1[c2], Table1[c3], Table1[c4], Table1[c5] }
RETURN
    MINX ( Temp, [Value] )

Elektryon

Hola @Kristofferaabo

Si desea ahorrar la sobrecarga de memoria de una columna calculada, también puede hacerlo con una medida muy simple:

min_date = 
VAR Temp = 
    { 
        MIN ( table1[C1] );
        MIN ( table1[C2] );
        MIN ( table1[C3] )
    }
VAR MinYear = MINX ( Temp; [Value] )

RETURN MinYear

antoniogouveia

En respuesta a Elektryon

Hola @Elektryon,

¿Hay alguna forma de devolver el nombre de la columna en lugar del valor?

Salud,

antonio

Elektryon

En respuesta a antoniogouveia

Hola @antoniogouveia,

Por supuesto, podrías hacer algo como esto:

min_date_column = 
VAR Temp = 
    { 
        MIN ( Table1[Column1] );
        MIN ( Table1[Column2] );
        MIN ( Table1[Column3] )
    }
VAR MinDate = MINX ( Temp; [Value] )

VAR MinColumn =
    SWITCH(
        MinDate;
        MIN ( Table1[Column1] ); "Column1";
        MIN ( Table1[Column2] ); "Column2";
        MIN ( Table1[Column3] ); "Column3"
    )

RETURN MinColumn

¿Sería interesante saber por qué harías algo así? ¿Para qué usas el nombre de la columna?

Salud,

Sven

antoniogouveia

En respuesta a Elektryon

Hola @Elektryon,

¡Gracias eso funcionó!
Así que estoy usando la pieza de código de una manera diferente. Tengo diferentes columnas en mi tabla y necesito encontrar qué columna(s) tienen menos y/o más filas en blanco.

Entonces tengo medidas para cada columna para darme la cantidad de espacios en blanco dada por:

Blanks_column1 = CALCULATE(COUNTROWS(table1), column1=BLANK())
Blanks_column2 = CALCULATE(COUNTROWS(table1), column2=BLANK())
Blanks_column3 = CALCULATE(COUNTROWS(table1), column3=BLANK())

Luego, estoy adaptando su código DAX para que me dé el mínimo o el máximo de todas esas medidas, en otras palabras, para que me dé la columna que tiene menos o más espacios en blanco:

Least_Completed_Column = 
VAR Temp = 
    { 
        Blanks_column1 );
        Blanks_column2 );
        Blanks_column3 )
    }
VAR MaxValue = MAXX ( Temp; [Value] )

VAR MaxColumn =
    SWITCH(
        MaxValue;
        Blanks_column1 ); "Column1";
        Blanks_column2 ); "Column2";
        Blanks_column3 ); "Column3"
    )

RETURN MaxColumn

Mi próximo paso sería obtener la 5 valores principales para las 5 columnas con mayor número de espacios en blanco. ¿Tiene una solución para eso, tal vez, usando su medida DAX original?

Gracias,

antonio

DobleJ

Hola Kristoffer

Podría crear una nueva columna con DAX y usar la función MIN(). Como MIN() solo toma 2 argumentos, debe anidarlos:

MinValue = MIN(MIN(MIN(MIN(Demo[C1],Demo[C2]),Demo[C3]),Demo[C4]),Demo[C5])

Puede haber una manera más fácil que no conozco.

¡Espero que esto ayude!

JJ

Zubair_Muhammad

En respuesta a DobleJ

Hola @Kristofferaabo

Puede utilizar esta columna calculada

Column =
VAR temp = { Table1[c1], Table1[c2], Table1[c3], Table1[c4], Table1[c5] }
RETURN
    MINX ( Temp, [Value] )

fep

En respuesta a Zubair_Muhammad

Gracias por la solución

Kristofferaabo

En respuesta a Zubair_Muhammad

Hola, @Zubair_Muhammad. Estoy tratando de usar tu fórmula en otro conjunto de datos. Quiero encontrar el valor MIN sobre 15 columnas… pero parece que hay una restricción en el número de columnas para poner en la fórmula…?

min_columna.jpg

Zubair_Muhammad

Hola @Kristofferaabo

Puedes hacerlo desde el Editor de consultas

Seleccione las columnas>>>Ir a la pestaña «Agregar columna»>>Estadísticas>>> Mínimo

COLUMNAS MÚLTIPLES MÍNIMAS.png

Kristofferaabo

En respuesta a Zubair_Muhammad

Hola @Anónimo y @Zubair_Muhammad
Ambas excelentes soluciones… Sin embargo, esta es una tabla ya generada a partir de otra tabla (mi función de resumen), por lo que no puedo ver la tabla en «consultas de edición».

Anónimo

Agregaría esto como una columna nativa usando el Editor de consultas.

Haga clic en «Agregar columna personalizada» y pegue esta fórmula. Tenga en cuenta que es posible que deba ajustarlo según los nombres de sus 5 columnas.

List.Min( { [C1], [C2], [C3], [C4], [C5] }  )

Esta fórmula primero genera una lista de valores, usando las 5 columnas. Usa llaves {} para decir que es una lista.

Entonces List.Min encuentra el valor más pequeño de esa lista.

Espero que esto ayude,

~ Chris H

Deja un comentario

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