Forum Discussion

ka047's avatar
ka047
Icon for Helper I rankHelper I
5 years ago
Solved

Medida DATEDIFF DAX

Estoy tratando de calcular la diferencia entre 2 campos de fecha. Ambas son en tablas de hecho y no se crean medidas. AVERAGEX o SUMX no funcionarán para mí. A continuación está lo que tengo hasta ahora, si alguien pudiera ayudarme a calcular la diferencia, lo agradecería. ¡Gracias!

Días de Envío ( Shipping Days)
resumir (Fact_SalesCogs,
Fact_SalesCogs[SalesOrder],
Fact_SalesCogs[DeliveryDate],
Fact_SalesCogs[ShippingDateConfirmed],
calcular(
datediff(Fact_SalesCogs[DeliveryDate], Fact_SalesCogs[ShippingDateConfirmed], día)
Hemos detectado un problema desconocido.
  • Anonymous's avatar
    Anonymous
    5 years ago

    No @ka047 ,

    La función SUMMARIZE produce una tabla de resumen. Si desea calcular la diferencia entre 2 campos de fecha, intente lo siguiente:

    Shipping Days =
    DATEDIFF (
        Fact_SalesCogs[DeliveryDate],
        Fact_SalesCogs[ShippingDateConfirmed],
        DAY
    )

    Si desea crear una tabla calculada que tenga la columna Días de envío, pruebe lo siguiente:

    New Table =
    SUMMARIZE (
        Fact_SalesCogs,
        Fact_SalesCogs[SalesOrder],
        Fact_SalesCogs[DeliveryDate],
        Fact_SalesCogs[ShippingDateConfirmed],
        "Shipping Days",
            DATEDIFF (
                'Fact_SalesCogs'[DeliveryDate],
                Fact_SalesCogs[ShippingDateConfirmed],
                DAY
            )
    )

    El archivo pbix que probé está aquí.

    Saludos

    Stephen Tao

    Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

8 Replies

  • MattAllington's avatar
    MattAllington
    Icon for Community Champion rankCommunity Champion

    Asumo que estás escribiendo una medida. ¿Por qué suMX no funciona? SUMX funciona como una columna calculada - No veo ninguna razón por la que no funcione.

    sumx(fact,datediff(Fact_SalesCogs[DeliveryDate], Fact_SalesCogs[ShippingDateConfirmed], day))

  • Hey @ka047 ,

    ¿puede explicar por qué esto no va a funcionar

    Shipping Days =
    SUMX(
    Fact_SalesCogs,
    Fact_SalesCogs[DeliveryDate] - Fact_SalesCogs[ShippingDateConfirmed]
    )

    Saludos y un paso seguro a 2021,

    Tom

      • TomMartens's avatar
        TomMartens
        Icon for Super User rankSuper User

        Hey @ka047 ,

        ¿Cuál es su fuente de datos?

        ¿Cuál es el tipo de datos de ambas columnas? ¿Ambos deben ser Date o Datetime?

        ¿Importó los datos o está utilizando DirectQuery o LiveConnection?

        Tom

  • @ka047 , Probar como

    Días de Envío ( Shipping Days)
    Sumx (resumen (Fact_SalesCogs,
    Fact_SalesCogs[SalesOrder],
    Fact_SalesCogs[DeliveryDate],
    Fact_SalesCogs[ShippingDateConfirmed],
    "_1",
    calcular(
    datediff(min(Fact_SalesCogs[DeliveryDate]), max(Fact_SalesCogs[ShippingDateConfirmed]), day))), [_1])

    O

    Días de Envío ( Shipping Days)
    Sumx (resumen (Fact_SalesCogs,
    Fact_SalesCogs[SalesOrder],
    Fact_SalesCogs[DeliveryDate],
    Fact_SalesCogs[ShippingDateConfirmed],
    Fact_SalesCogs[DeliveryDate],
    Fact_SalesCogs[ShippingDateConfirmed])
    ,datediff(min(Fact_SalesCogs[DeliveryDate]), max(Fact_SalesCogs[ShippingDateConfirmed]), day))

    También, consulte: https://community.powerbi.com/t5/Community-Blog/Decoding-Direct-Query-in-Power-BI-Part-2-Date-Difference-Across/ba-p/934397#M451

  • Anonymous's avatar
    Anonymous
    Not applicable

    No @ka047 ,

    La función SUMMARIZE produce una tabla de resumen. Si desea calcular la diferencia entre 2 campos de fecha, intente lo siguiente:

    Shipping Days =
    DATEDIFF (
        Fact_SalesCogs[DeliveryDate],
        Fact_SalesCogs[ShippingDateConfirmed],
        DAY
    )

    Si desea crear una tabla calculada que tenga la columna Días de envío, pruebe lo siguiente:

    New Table =
    SUMMARIZE (
        Fact_SalesCogs,
        Fact_SalesCogs[SalesOrder],
        Fact_SalesCogs[DeliveryDate],
        Fact_SalesCogs[ShippingDateConfirmed],
        "Shipping Days",
            DATEDIFF (
                'Fact_SalesCogs'[DeliveryDate],
                Fact_SalesCogs[ShippingDateConfirmed],
                DAY
            )
    )

    El archivo pbix que probé está aquí.

    Saludos

    Stephen Tao

    Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hola @ka047 ,

    ¿Podría decirme si su problema ha sido resuelto?
    Si es así, acédi es la solución. Más gente se beneficiará de ello.
    O todavía está confundido al respecto, por favor proporcione más detalles sobre su tabla y su problema o compártame con su archivo pbix de su Onedrive for Business.


    Saludos
    Stephen Tao

  • Igolpe_23's avatar
    Igolpe_23
    Regular Visitor

    Buenos días, 

     

    ¿es posible crear una medida con la fomrula DATEDIFF utilizando dos campos de fecha dentro de la tabla origen?

    Estoy intentando calcular un indicador para facturas con fecha inicio y fin con referencia al acumulado de una columna(consumo), que suma los datos de consumo anterior y debo dividirlo entre el número de dias que surge del periodo de factura. tengo la columna de numero de días creada con la forula DATTEDIF pero me salta el error al crear el indicador.

     

    Desconozco s el error es ese..que es necesario una medida..

     

    Muchas gracias de antemano.

     

    Un saludo