excel - 连接时间的Excel公式
问题描述
为给您带来的不便深表歉意,我们更新了输入和预期结果所需的屏幕截图。谢谢!
解决方案
这可能会帮助您:
VBA方法:
Option Explicit
Sub TEST()
Dim LastRowA As Long, LastRowD As Long, i As Long, j As Long
Dim Name As String, StartingTime As String, EndingTime As String
j = 0
With ThisWorkbook.Worksheets("Sheet1")
LastRowA = .Cells(.Rows.Count, "A").End(xlUp).Row
For i = 1 To LastRowA
If i >= j Then
StartingTime = .Range("A" & i).Value
Name = .Range("B" & i).Value
For j = i + 1 To LastRowA + 1
If .Range("B" & j).Value <> Name Then
EndingTime = .Range("A" & j - 1).Value
LastRowD = .Cells(.Rows.Count, "D").End(xlUp).Row
.Range("D" & LastRowD + 1).Value = Name
If StartingTime = EndingTime Then
.Range("E" & LastRowD + 1).Value = StartingTime
Else
.Range("E" & LastRowD + 1).Value = StartingTime & "-" & EndingTime
End If
Exit For
End If
Next j
End If
Next i
End With
End Sub
结果:
Excel方法:
导入并下拉以下公式
单元格 D2 中的公式:=LOOKUP(2,1/(COUNTIF($D$1:D1,$B$1:$B$8)=0),$B$1:$B$8)
单元格 E2 中的公式:=IF(INDEX($A$1:$A$8,MATCH(D2,$B$1:$B$8,0))= LOOKUP(2,1/($B$1:$B$8=D2),$A$1:$A$8),LOOKUP(2,1/($B$1:$B$8=D2),$A$1:$A$8),INDEX($A$1:$A$8,MATCH(D2,$B$1:$B$8,0)) & "-" & LOOKUP(2,1/($B$1:$B$8=D2),$A$1:$A$8))
结果:
推荐阅读
- oauth - 开放身份和 OAuth
- python - 如何根据两个参数计算熊猫数据框中的实例(使用带有“和”运算符的 lambda 函数)?
- pandas - 无法在pycharm中绘图
- c# - 单元测试场景中的游戏对象
- python - 熊猫合并不考虑常见项目
- azure - 使用预定义的连接器将 LogicApp 连接到 D365 CRM
- javascript - How to get the inner object array in javascript?
- outlook - 如何在 vsto Outlook 加载项中实现默认快捷方式?
- android - 如何在 Android Oreo 及更高版本的通知托盘中显示带有图片的 Android 通知?
- php - jQuery Datepicker 在每个月的前 10 天不显示事件