/ / Сумарні строки на основі критеріїв дати - excel, excel-formula

Підсумовування часу на основі критеріїв дати - excel, excel-formula

  Col A       Col J   Col K   Col L
8/1/2015       0:58     10     4:31
8/1/2015       0:19      1     3:56

Чи можу я автоматизувати функцію або безліч функцій, щоб шукати інформацію з цього набору даних на основі дати в стовпці А? Я зараз роблю це вручну:

=((L24+L25)-(J24+J25))/(K24+K25)

Мені цікаво, чи є щось подібнеможе зробити це простіше. Я спробував sumif, sumsproducts, вкладені заявки if / index-match, але вичерпали ідеї або просто не писали функції належним чином.

Відповіді:

0 для відповіді № 1

Ця формула повинна підібрати результати, які ви шукаєте.

=(SUMIF($A$24:$A$100,G16, $L$24:$L$100)-SUMIF($A$24:$A$100,G16, $J$24:$J$100))/SUMIF($A$24:$A$100, G16, $K$24:$K$100)

Існує ще одна проблема, коли часинасправді текст-то-виглядають-як-час. Перша ознака цього полягає в їх вирівнювання по лівій частині в клітинах. Швидкий перехід від тексту до стовпців, фіксована ширина, обробка повертає кожен стовпець до фактичного часу, але кожен стовпець повинен мати такий показник окремо.

Нижче наведено процедуру, яка швидко проходить через кожен робочий аркуш і виконує дію в кожному стовпці.

Sub fix_text_times()
Dim w As Long, c As Long, fndMrg As Range

On Error Resume Next
Application.FindFormat.MergeCells = True

For w = 1 To Worksheets.Count
With Worksheets(w)
With .UsedRange.Cells
Set fndMrg = .Cells.Find(What:=vbNullString, SearchFormat:=True)
Do While Not fndMrg Is Nothing
fndMrg.MergeCells = False
Set fndMrg = .Cells.Find(What:=vbNullString, SearchFormat:=True)
Loop

For c = 1 To .Columns.Count
.Columns(c).TextToColumns Destination:=.Cells(1, c), _
DataType:=xlFixedWidth, FieldInfo:=Array(0, 1)
Next c
End With

End With
Next w

Application.FindFormat.MergeCells = False

End Sub

The Метод Range.TextToColumns не зовсім добре зіграє з об'єднаними клітинками, тому я не згорнув те, що міг знайти. Я врівноважував цю дію проти всіх множин Області власності знайдені в Master Input 1 і вирішили, що ви можете повернути їх назад, якщо ви відверто хочете їх.