根据日期标准汇总时间

时间:2015-08-28 19:43:28

标签: 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

我可以自动执行一项功能或一组功能,根据A列中的日期从该数据集中查找信息吗?我现在正在手工做这件事:

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

我想知道是否有什么可以让这更容易。我已经尝试了sumif的,sumproducts,嵌套的if / index-match语句,但是已经用完了想法,或者我只是没有正确编写函数。

1 个答案:

答案 0 :(得分:0)

此公式应该会找到您要查找的结果。

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

Range.TextToColumns method对合并的单元格效果不佳,所以我已经找不到任何我能找到的东西了。我对主输入1中找到的所有多个Areas property进行了平衡,并认为如果你绝对想要它们,你可以把它们放回去。