jdusek92
Hola,
He aplicado con éxito la solución de esta publicación.
Ahora me gustaría entender la lógica.
guión:
(simplificado)
- tabla de datos con ID de empleados, Mes y valor para el mes respectivo
- tabla de datos de corrección con ID, valor correcto, «válido desde el mes» y «válido al mes«
La tarea es corregir los datos con los valores de la tabla de corrección, para el ID y los meses dados
Tengo esta fórmula M, que OBRAS:
let Source = Excel.CurrentWorkbook(){[Name="kons"]}[Content], zmenyBuf = Table.Buffer(zmeny), #"Added Custom" = Table.AddColumn(Source, "NovySl", (tempNazev) => Table.SelectRows(zmenyBuf,each tempNazev [m]>= [od] and tempNazev [m]<= [do] and tempNazev [ID]=[ID]), Value.Type(zmenyBuf)), #"Expanded zmeny" = Table.ExpandTableColumn(#"Added Custom", "NovySl", {"hod"}, {"NovySl.hod"}) in #"Expanded zmeny"
Me gustaría entender esta parte:
cual es el proposito de tempNazev ? ¿Es solo un marcador de posición?
(tempNazev) => Table.SelectRows(zmenyBuf,each tempNazev [m]>= [od] and tempNazev [m]<= [do] and tempNazev [ID]=[ID]), Value.Type(zmenyBuf)
Un cordial saludo,
Jakub
v-yuta-msft
En respuesta a jdusek92
@ jdusek92,
No es un nombre de función, es un parámetro de entrada de la función, puede consultar los tutoriales sobre la función personalizada en Power query.
http://radacad.com/writing-custom-functions-in-power-query-m
https://blogs.msdn.microsoft.com/mvpawardprogram/2013/08/19/creating-power-query-functions/
Equipo de apoyo de la comunidad _ Jimmy Tao
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
v-yuta-msft
@ jdusek92,
Según tengo entendido, esto se debe a que usa una función Table.Buffer antes del paso de agregar columnas. Table.Buffer será bIntroduzca una tabla en la memoria, aislándola de los cambios externos durante la evaluación, lo que significa que es una tabla temporal y puede llamarla varias veces sin cargar la tabla en la memoria nuevamente. Es muy similar a un parámetro de función que tampoco está en la memoria del disco.
Entonces, esta pregunta se puede convertir a «Cuándo y dónde deberíamos usar un búfer en la consulta de energía», puede consultar casos similares a continuación:
https: //community.powerbi.com/t5/Desktop/How-to-Improve-Query-Reference-performance-for-large-tables …
https: //community.powerbi.com/t5/Desktop/Queries-over-large-data-tables/mp/26783/highlight/true#M85 …
Equipo de apoyo de la comunidad _ Jimmy Tao
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
jdusek92
En respuesta a v-yuta-msft
@ v-yuta-msft muchas gracias por tu respuesta.
Tengo la idea de tablas almacenadas en búfer. En mi ejemplo, la tabla almacenada en búfer se llama zmenyBuf.
Pero todavía no estoy seguro de esta sintaxis:
(tempNazev) => Table.SelectRows(zmenyBuf,each tempNazev [m]>= [od] and tempNazev [m]<= [do] and tempNazev [ID]=[ID]), Value.Type(zmenyBuf)
cual es el nombre de la función de (tempNazev) => ?
¿Podría proporcionar algún enlace con más información sobre esta sintaxis?
Un cordial saludo
v-yuta-msft
En respuesta a jdusek92
@ jdusek92,
No es un nombre de función, es un parámetro de entrada de la función, puede consultar los tutoriales sobre la función personalizada en Power query.
http://radacad.com/writing-custom-functions-in-power-query-m
https://blogs.msdn.microsoft.com/mvpawardprogram/2013/08/19/creating-power-query-functions/
Equipo de apoyo de la comunidad _ Jimmy Tao
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.