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.
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í?
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
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
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |