我有一个电子表格,管理时段内的组列表。想象下面是单元格:
0830-0845, Bob Hoskins, Jack Table, Phil Cup
0845-0900, Bob Hoskins, Jack Table, Phil Cup
0900-0915, Bob Hoskins, Jack Table, Phil Cup
0915-0930, Bob Hoskins, Jack Table, Phil Cup
0930-0945, Bob Hoskins, Jack Table, Phil Cup
0945-1000, Jane Dunnit, Henry Badass
1000-1015, Jane Dunnit, Henry Badass
1015-1030, Jane Dunnit, Henry Badass
1030-1045, Terry Turbo
1045-1100, Terry Turbo
1100-1115, Simon Car, Maggie Blah, Jack Paper
在工作簿内的新工作表中,我可以使用什么类型的公式将时间段压缩在一起(组合所有值以获得开始到结束的总值)并生成看起来更像这样的工作表:
0830-0945, Bob Hoskins, Jack Table, Phil Cup
0945-1030, Jane Dunnit, Henry Badass
1030-1100, Terry Turbo
1100-1115, Simon Car, Maggie Blah, Jack Paper
逗号是单元格的墙壁,因此时间戳和名称位于单独的单元格中。这需要使用公式来实现,因为源数据将定期更新
最佳答案
使用数据透视表相当容易维护的部分解决方案:
获取开始时间列:
使用公式添加新列:=VALUE(MID(RC[-4],1,4))
其中 RC[-4] 是您的原始时间范围。获取结束时间列:
使用公式添加新列:=VALUE(MID(RC[-5],6,10))
其中 RC[-5] 是您的原始时间范围。串联名称列:
=CONCATENATE(RC[-5],RC[-4],RC[-3])
其中 RC[-5]、RC[-4]、RC[-3] 是具有名称值的单元格。
这是为了在数据透视表中进行分组。
你应该得到这样的东西:
注意标题很重要!将包含新扩展表的数据透视表插入到新工作表中:
设置行标签来命名串联列。
添加开始时间列作为值,值字段设置为分钟 添加结束时间列作为值,值字段设置为 max
将开始时间的最小值和结束时间的最大值的数字格式设置为“0000”,以便正确显示时间
在可维护性方面:
- 为数据透视表设置动态源范围(相当容易做到)。
- 通过拖动公式或使用热键 ctrl+、ctrl+d 来扩展来更新扩展列。
- 编写一个非常简单的宏来为您扩展/更新扩展列。
简化/假设:
- 名称的顺序很重要,即不要将名称集合视为一个集合
对于 Excel,我的建议始终是尽可能多地利用现有工具,而不是使用过于复杂的单元格公式,因为这可能难以调试且效率可能较低。
让我知道这个输出是否足够有用,否则我会看看还能做什么。
关于excel - 减少 Excel 中的单元格数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21172814/