Intentando encontrar diferencias de fechas en Excel entre varias entradas

Intentando encontrar diferencias de fechas en Excel entre varias entradas

Tengo una tabla de Facturas y Fecha de modificación. Esto proporciona múltiples entradas de facturas con múltiples fechas por persona. Lo que estoy tratando de hacer es encontrar las fechas entre la primera y la última entrada para tener un marco de tiempo de cuánto tiempo tomó de principio a fin.

Vea la tabla de abajo:

Factura Ingresado/Modificado Última modificación Estado
N805844 5/2/2024 José El último
N805844 5/2/2024 esteban Previo
N805844 28/12/2024 Miguel Previo
N808961 4/1/2024 José El último
N805961 3/1/2024 José Previo
N805961 2/1/2024 Miguel Previo
N805961 2/1/2024 esteban Previo

Estaba tratando de trabajar en una columna auxiliar para identificar el número de factura y luego restar todos los valores de fecha que deberían producir un solo número: días hasta la finalización. Estoy teniendo en cuenta el "último" y el "anterior" porque podría resultar útil.

He pensado en una fórmula Max/Min en otra hoja, pero no estoy seguro de cómo podría hacerlo.

Luego cambiaré esta tabla para mostrar los días hasta su finalización. Cualquier ayuda sería apreciada.

Respuesta1

Hay bastantes formas de lograr esto, intentaré publicar algunas formas, hasta donde sé, usando Excel Formulas. También hay una opción flexible y es el uso de POWER QUERY.

Usando fórmulas de Excel:

ingrese la descripción de la imagen aquí


• Fórmula utilizada en la celda F2que devuelve las facturas únicas.

=UNIQUE(A2:A8)

• La fórmula utilizada en la celda G2devuelve la fecha de inicio y la fecha de finalización.

=AGGREGATE({15,14},6,B$2:B$8/($F2=A$2:A$8),1)

• Durante #días coloque lo siguiente en la celdaI2

=H2-G2+1

Es necesario completar todas las fórmulas anteriores excepto la de facturas.


Vía alternativa 2

ingrese la descripción de la imagen aquí


La siguiente fórmula es MS365exclusiva.

=LET(
     _UniqInv, UNIQUE(A2:A8),
     _LastestDate, MAXIFS(B2:B8,A2:A8,_UniqInv),
     _PriorDate, MINIFS(B2:B8,A2:A8,_UniqInv),
     _DataBody, HSTACK(_UniqInv, _PriorDate, _LastestDate, _LastestDate-_PriorDate+1),
     VSTACK({"Unique Invoice","Prior Date","Latest Date","# Of Days"},_DataBody))

  • Uso de UNIQUE()la función para devolver facturas únicas.
  • Se utiliza MAXIFS()para devolver la última fecha.
  • Utilizando MINIFS()para devolver la fecha de inicio.
  • Usar HSTACK()para fusionar los tres anteriores y hacer una resta con la segunda y tercera variable para devolver #los días. (Nota:El número de días incluye todas las fechas anteriores; si no desea lo mismo, excluya +1).
  • Por último, use VSTACK()para agregar el conjunto junto con un encabezado.

Otra forma es utilizar la nueva función habilitada para beta en MS365:GROUPBY()

=LET(
     _Data, DROP(GROUPBY(A2:A8,B2:B8,HSTACK(MIN,MAX),0,0),1),
     _NoOfDays, INDEX(_Data,,3)-INDEX(_Data,,2)+1,
     VSTACK({"Unique Invoice","Prior Date","Latest Date","# Of Days"},
     HSTACK(_Data,_NoOfDays)))

Y esto también se puede lograr usando Power Query, disponible en Windows Excel 2010+yExcel 365 (Windows or Mac)

ingrese la descripción de la imagen aquí


Para utilizar Power Query siga los pasos:

  • Primero convierta los rangos de origen en una tabla y asígnele el nombre correspondiente; para este ejemplo lo he nombrado comoTable1

  • A continuación, abra una consulta en blanco desde DataTab --> Get & Transform Data--> Get Data--> From Other Sources-->Blank Query

  • Lo anterior permite que Power Queryse abra la ventana, ahora desde HomeTab --> Advanced Editor--> Y pega lo siguiente M-Codeeliminando lo que veas, y presionaDone

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Grouped Rows" = Table.Group(Source, {"Invoice"}, {{"Start_Date", each List.Min([#"Entered/Modified"]), type datetime}, {"End_Date", each List.Max([#"Entered/Modified"]), type datetime}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows", "No_Of_Days", each Duration.Days([End_Date]-[Start_Date])+1),
    #"Changed Type" = Table.TransformColumnTypes(#"Added Custom",{{"Invoice", type text}, {"Start_Date", type date}, {"End_Date", type date}, {"No_Of_Days", Int64.Type}})
in
    #"Changed Type"

ingrese la descripción de la imagen aquí

  • Por último, para volver a importarlo a Excel--> Haga clic en Close & Loado Close & Load To--> El primero que hizo clic creará un archivo New Sheetcon el resultado requerido, mientras que el segundo mostrará una ventana que le preguntará dónde colocar el resultado.

información relacionada