Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Byzantine
New Member

¿Puedo usar DAX para buscar [fila,columna] desde un sobreadjunto adjunto de distancias entre nodos de un gráfico?

Hola a todos,

Nuestro negocio se basa en una medida de distancia*peso para todos los viajes de vehículos como una especie de métrica de "trabajo hecho". Actualmente tenemos una base de datos SQL que contiene todos los datos de viaje excepto las distancias. Eso se hace en Excel.

Los vehículos siguen caminos fijos a través de una red de nodos a la que agregamos más nodos con bastante regularidad (a medida que crece la huella de las operaciones). Para calcular las distancias entre un punto y otro, hace muchos años, un Excel relativamente ligero con una implementación VBA del algoritmo de Dijkstra que calcula las distancias desde cada nodo a cada otro nodo (usando nodos y bordes). Para generar nuestra distancia*valorde peso, extraemos informes diarios de viajes de la base de datos, lo más importante: (salida) (destino) (peso) y luego en otro excel rellenar las distancias consultando la página de Excel (de A a Q se mira la fila A columna Q - inversa o inversa como la matriz simétrica).

Lo que esperaba hacer era usar una expresión DAX para extraer distancia automáticamente del archivo de Excel, pero creo que he llegado a un callejón sin salida y tengo la sensación de que los sistemas son una clavija cuadrada y un agujero redondo. Es la primera vez que uso DAX, pero no la primera vez consultando una referencia de función.

1) consulte la tabla de nodos para asegurarse de que los nodos de destino y de salida están programados en

1.1) Bastante fácil.

2) Utilice lookupvalue para tomar el valor de la matriz de distancia

2.1) No estoy seguro de cómo seleccionaría una columna en la tabla de distancia utilizando una variable extraída de la base de datos como nombre de columna. Las columnas se agregarán regularmente creo que tendría que ser una referencia dinámica..

2.2) Dada la naturaleza simétrica de la tabla y la restricción impuesta a "search_value" con LOOKUPVALUE (Una expresión escalar que no hace referencia a ninguna columna de la misma tabla que se está buscando.) No estoy seguro de poder usar la función.

¿Alguien tiene alguna sugerencia sobre cómo puedo lograr esto, si es posible - o de qué otra manera podría estructurar los datos para hacerlo así?

3 REPLIES 3
Greg_Deckler
Super User
Super User

Suena muy interesante. ¿Puede publicar algunos datos de muestra (texto)? Parece que podría tener elementos de Cierre Transitivo. https://community.powerbi.com/t5/Quick-Measures-Gallery/Transitive-Closure/m-p/783828#M388


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Hola Greg, nunca había oído hablar de Cierre Transitivo antes. Gracias por la atención. Después de un poco de investigación suena como que se aplica a un caso similar, pero donde la distancia entre los nodos es irrelevante. Supongo que podría ser posible usarlo para generar una ruta entre dos nodos y luego tomar cada conexión perimetral a lo largo de esa ruta y sumar sus valores para la distancia completa. Tendré que e-pver un poco más.

Si usted está interesado, por desgracia no puedo dar datos reales, pero aquí hay una idea de lo que estamos viendo

Base:

2020-05-06 - place_1 - place_5 - 15 toneladas

2020-05-06 | place_2 - place_5 - 60 toneladas

2020-05-06 | place_4 - place_3 - 15 toneladas

2020-05-04 | place_1 - place_5 - 15 toneladas

2020-05-04 | place_2 - place_5 - 15 toneladas

2020-05-05 | place_4 - place_6 - 15 toneladas

Excel, pestaña Nodos:

place_1, place_2, place_3, place_4, place_5, place_6

Excel, pestaña Bordes:

place_1 de | place_3 400m

place_2 de | place_3 500m

place_3 de | place_4 40m

place_3 de | place_5 600m

place_4 de | place_6 1000m

Excel, pestaña distancias:

X ? place_1 | place_2 | place_3 de la place_4 de la casa de la place_5 | place_6 |

place_1 | 0 900 400 ....

place_2 | 900 0 500 ...

place_3 de la etcetera.

place_4 de la casa de la etcetera.

place_5 | etcetera.

place_6 | etcetera.

Muchas gracias

Byz

Decidí rebotar la idea de un colega de otra oficina, y encontramos lo que creo que es una buena solución. Quería dejarlo aquí para la posteridad. Nada peor que encontrar su problema exacto en Internet sólo para ver la solución nunca se presentó (o se encontró).

Básicamente, la configuración de matriz simétrica no es muy propicia para DAX. Mi colega sugirió que viéramos en fundir(remodelar) la salida del algoritmo, es decir, convertirlo sistemáticamente en una columna de 3 filas mucho más intensiva configurada con SALIDA-DESTINATION-DISTANCE como formato. Lo implementaremos en lugar de seguir este agujero de conejo sin salida.

Aquí hay un par de referencias:

- https://stats.idre.ucla.edu/stata/modules/reshaping-data-wide-to-long/

- https://www.listendata.com/2015/02/excel-formula-convert-data-from-wide-to.html

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.