BartB
Hola a todos,
Tengo 5 columnas calculadas y una columna que considero como mi «Valor de búsqueda». Ahora me gustaría hacer dos columnas más calculadas:
1. con el valor de la columna más cercana a mi valor de búsqueda
2. con el nombre de la columna más cercana a mi valor de búsqueda.
Hice algo similar en Excel (ver más abajo). ¿Alguien sabe una fórmula DAX (u otra solución) que pueda usar en Power BI para replicar lo que hice en Excel?
¡Muchas gracias de antemano!
Valor de búsqueda | columna1 | columna 2 | columna3 | column4 | column5 | Columna más cercana | Valor de la columna más cercana | ||
4 | 1 | 2 | 3 | 4 | 5 | column4 | 4 | ||
= BUSCAR (G5, I5: M5, I4: M4) | = BUSCAR (G5, I5: M5, I5: M5) |
Zubair_Muhammad
En respuesta a Zubair_Muhammad
@BartB
Closest Column = VAR MyTable = UNION ( ROW ( "Column Name", "Column1", "Value", Table1[column1] ), ROW ( "Column Name", "Column2", "Value", Table1[column2] ), ROW ( "Column Name", "Column3", "Value", Table1[column3] ), ROW ( "Column Name", "Column4", "Value", Table1[column4] ), ROW ( "Column Name", "Column5", "Value", Table1[column5] ) ) RETURN CONCATENATEX ( FILTER ( MyTable, [Value] = Table1[Closest Value] ), [Column Name], ", " )
v-jiascu-msft
Hola @BartB,
1. ¿Es estable el valor de búsqueda? ¿Siempre en una columna?
2. ¿Dónde está el valor de búsqueda? ¿En otra tabla?
3. ¿Hay solo un valor de búsqueda? ¿O cada fila tiene un valor de búsqueda?
4. ¿Cómo evaluar el más cercano?
Atentamente,
Valle
BartB
En respuesta a v-jiascu-msft
Hola @ v-jiascu-msft,
Gracias por su respuesta.
1. ¿Es estable el valor de búsqueda? ¿Siempre en una columna?
Sí, el valor de búsqueda es estable. Es una columna calculada con el resultado de un valor de búsqueda en otra columna.
2. ¿Dónde está el valor de búsqueda? ¿En otra tabla?
El valor de búsqueda en sí está en la misma tabla. Sin embargo, es una columna calculada y, por lo tanto, no está en el Editor de consultas.
3. ¿Hay solo un valor de búsqueda? ¿O cada fila tiene un valor de búsqueda?
Cada fila tiene un valor de búsqueda
4. ¿Cómo evaluar el más cercano?
Ideal sería literalmente lo más cercano a … (3.9 está más cerca de 4 que de 4.2). Pero si esto no es posible, ya estaría satisfecho con una coincidencia aproximada como en la fórmula de vlookup en Excel.
Si tiene más preguntas, hágamelo saber.
BR,
Bart
v-jiascu-msft
En respuesta a BartB
Hola @BartB,
¿Funcionó la solución de @Zubair_Muhammad?
Atentamente,
Valle
Zubair_Muhammad
En respuesta a BartB
@BartB
Dale una oportunidad
Closest Value = VAR fig = 1000000000 VAR Positives = UNION ( ROW ( "BartB", IF ( Table1[Lookup value] >= Table1[column1], Table1[Lookup value] - Table1[column1], fig ) ), ROW ( "BartB", IF ( Table1[Lookup value] >= Table1[column2], Table1[Lookup value] - Table1[column2], fig ) ), ROW ( "BartB", IF ( Table1[Lookup value] >= Table1[column3], Table1[Lookup value] - Table1[column3], fig ) ), ROW ( "BartB", IF ( Table1[Lookup value] >= Table1[column4], Table1[Lookup value] - Table1[column4], fig ) ), ROW ( "BartB", IF ( Table1[Lookup value] >= Table1[column5], Table1[Lookup value] - Table1[column5], fig ) ) ) VAR Positivevariances = MINX ( Positives, [BartB] ) VAR Negatives = UNION ( ROW ( "BartB", IF ( Table1[Lookup value] < Table1[column1], Table1[Lookup value] - Table1[column1], - fig ) ), ROW ( "BartB", IF ( Table1[Lookup value] < Table1[column2], Table1[Lookup value] - Table1[column2], - fig ) ), ROW ( "BartB", IF ( Table1[Lookup value] < Table1[column3], Table1[Lookup value] - Table1[column3], - fig ) ), ROW ( "BartB", IF ( Table1[Lookup value] < Table1[column4], Table1[Lookup value] - Table1[column4], - fig ) ), ROW ( "BartB", IF ( Table1[Lookup value] < Table1[column5], Table1[Lookup value] - Table1[column5], - fig ) ) ) VAR Negativevariances = MAXX ( Negatives, [BartB] ) RETURN IF ( Positivevariances = 0, Table1[Lookup value], IF ( Positivevariances <= ABS ( Negativevariances ), Table1[Lookup value] - Positivevariances, Table1[Lookup value] - Negativevariances ) )
Zubair_Muhammad
En respuesta a Zubair_Muhammad
@BartB
Closest Column = VAR MyTable = UNION ( ROW ( "Column Name", "Column1", "Value", Table1[column1] ), ROW ( "Column Name", "Column2", "Value", Table1[column2] ), ROW ( "Column Name", "Column3", "Value", Table1[column3] ), ROW ( "Column Name", "Column4", "Value", Table1[column4] ), ROW ( "Column Name", "Column5", "Value", Table1[column5] ) ) RETURN CONCATENATEX ( FILTER ( MyTable, [Value] = Table1[Closest Value] ), [Column Name], ", " )
dani0010
Puede hacer esto con Power Query, pero no con DAX. Lo siento, no tengo tiempo para brindar una solución completa en este momento, pero pensé que este consejo podría darle esperanza y ahorrarle tiempo para encontrar una solución.