The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hola, tengo problema con la forma de hacer coincidir el tiempo en segundo lugar al período de tiempo en la consulta de energía. Es bastante fácil en Excel usando la función vlookup, pero no sé cómo resolver en power query. Había hecho alguna búsqueda, pero la mayoría de las soluciones son unir dos tablas basadas en fechas que coinciden con períodos, no adecuadas para fechas con situación de hora. Cualquier intercambio de soluciones en la consulta de poder sería muy apreciado!
Necesito hacer coincidir el tiempo en la 1ª tabla (es decir, 11/08/2020 11:43:42 am) con el período de tiempo en la 2ª tabla (es decir, hora de inicio: 15/08/2020 01:03:04 am, hora de finalización: 21/08/2020 09:15:20 pm).
La 1ª tabla es la tabla de ventas con información de compra del cliente (nombre del cliente, tiempo de compra). La 2ª tabla es la tabla de precios de venta con el precio de venta del producto en diferentes períodos de tiempo. El precio de venta de nuestro producto aumenta cada pocos días a una hora específica, por lo que el precio varía de cierta hora a cierta hora (es decir, hora de inicio: 15/08/2020 01:03:04 am, hora de finalización: 21/08/2020 09:15:20 pm), el precio cambia con mucha frecuencia y hay muchas compras por lo que hay un gran volumen de datos.
¡Muchas gracias!
Solved! Go to Solution.
No @asuka
puede probar esto en Power Query,
1. crear la fucción
(purchasetime) =>
let
Source = Table.SelectRows(#"sell price", each [start time] <= purchasetime and [end time] > purchasetime)
in
Source
2. agregue las filas seleccionadas en su editor avanzado,
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUTIyMDLUN9U3NFCK1YlWckISMQGLOMNEzPRNlWJjAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [customer = _t, #"purchase time" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"customer", type text}, {"purchase time", type datetime}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each SelectRows([purchase time])),
#"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"sell price"}, {"Custom.sell price"})
in
#"Expanded Custom"
-
Si desea utilizar la medida, puede probar esto,
price =
CALCULATE (
MIN ( 'sell price'[sell price] ),
FILTER (
ALL ( 'sell price' ),
'sell price'[start time] <= MIN ( sales[purchase time] )
&& 'sell price'[end time] >= MIN ( sales[purchase time] )
)
)
resultado
Saludos
equipo de apoyo a la comunidad _Tang
Si este post ayuda,por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@asuka Asegúrese de que las dos tablas no están relacionadas por fecha y, a continuación, use este método para buscar dentro del rango: Excel con Allison: Búsqueda aproximada de DAX
Deberá tener una tabla DimProduct que se relacione con ambas tablas y asegurarse de usar ese DimProduct[Product] en todos los objetos visuales y de DAX.
Déjame saber si te quedas atascado en cualquier paso, ya que su escenario es un poco más complejo que el blog, pero no demasiado grande.
Hola Allison, traté de crear una nueva medida, pero no funciona. ¿Podría usted por favor ayudar a echar un vistazo si hay algún error? ¡Gracias!
@asuka , lo siento, perdí la pista de este hilo. Por favor @ mencionarme en respuesta y voy a responder más rápido. ¿La solución de v-xiaotang funciona para usted? Veo v-xuding-msft lo ha marcado como resuelto, pero no seguro si todavía estás necesitando ayuda??
La medida que ha probado (a continuación) depende de que el tiempo de compra tenga un solo valor y depende de si ya hay una relación entre las dos tablas. No deben estar relacionados, y su objeto visual en el que lo está usando solo necesita tener un tiempo de compra, de lo contrario volverá en blanco.
No @asuka
puede probar esto en Power Query,
1. crear la fucción
(purchasetime) =>
let
Source = Table.SelectRows(#"sell price", each [start time] <= purchasetime and [end time] > purchasetime)
in
Source
2. agregue las filas seleccionadas en su editor avanzado,
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUTIyMDLUN9U3NFCK1YlWckISMQGLOMNEzPRNlWJjAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [customer = _t, #"purchase time" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"customer", type text}, {"purchase time", type datetime}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each SelectRows([purchase time])),
#"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"sell price"}, {"Custom.sell price"})
in
#"Expanded Custom"
-
Si desea utilizar la medida, puede probar esto,
price =
CALCULATE (
MIN ( 'sell price'[sell price] ),
FILTER (
ALL ( 'sell price' ),
'sell price'[start time] <= MIN ( sales[purchase time] )
&& 'sell price'[end time] >= MIN ( sales[purchase time] )
)
)
resultado
Saludos
equipo de apoyo a la comunidad _Tang
Si este post ayuda,por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Gracias, Allison! ¿Es posible resolver este problema en Power Query?