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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Syndicate_Admin
Administrator
Administrator

[Ayuda] Unir dos tablas basadas en fechas (con tiempo) entre la coincidencia no exacta de dos fechas.

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!

asuka_1-1628739035940.png

asuka_2-1628739058089.png

1 ACCEPTED SOLUTION

No @asuka

puede probar esto en Power Query,

1. crear la fucción

vxiaotang_1-1630038860821.png

(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,

vxiaotang_0-1630038777967.png

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

vxiaotang_0-1629093339572.png

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.

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

@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!

price = calculate(selectedvalue(sell price[sell price]),
FILTER(sell price,sell price[start time]<=sales[purchase time]
&&precio de venta[hora de finalización]>ventas[tiempo de compra]))

@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.

price = calculate(selectedvalue(sell price[sell price]),
FILTER(sell price,sell price[start time]<=sales[purchase time]
&&precio de venta[hora de finalización]>ventas[tiempo de compra]))

No @asuka

puede probar esto en Power Query,

1. crear la fucción

vxiaotang_1-1630038860821.png

(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,

vxiaotang_0-1630038777967.png

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

vxiaotang_0-1629093339572.png

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?

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

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

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Top Solution Authors
Top Kudoed Authors