减lessExcel中的单元格数量
我有一个电子表格pipe理时隙中的组列表。 想象下面是单元格:
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
逗号是单元格的墙,所以时间戳和名字是在不同的单元格中。 这将需要使用公式来实现,因为源数据将定期更新
部分解决scheme使用Pivot表很容易维护:
-
获取开始时间列:
使用公式添加新列:=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]是具有名称值的单元格。
这是在数据透视表中分组。
你应该得到这样的东西:
注意标题很重要! -
用您的新扩展表插入一个数据透视表到一个新的工作表中:
将行标签设置为名称连接列。
将开始时间列添加为值,值字段设置为min将结束时间列添加为值,值字段设置为最大值
设置开始和结束最小值的数字格式为“0000”,以正确显示时间
在可维护性方面:
- 为你的Pivot表设置一个dynamic的源代码范围(相当容易)。
- 拖动公式或使用热键更新您的扩展列:ctrl +,ctrl + d来扩展。
- 编写一个非常简单的macros来为你扩展/更新扩展列。
简化/假设:
- 名字的sorting是重要的,即不要把名字的集合看作一个集合
对于excel,我的build议是尽可能地利用现有的工具,而不是使用过于复杂的单元格公式,这些公式很难debugging,可能效率较低。
让我知道如果这个输出是有用的,否则我会看看还有什么可以做的。
我按照Excel 2010执行了这些步骤,但是这也适用于其他版本(稍作修改)。
脚步:
a)select所有数据单元b)转到数据 – >数据工具 – >删除重复c)看起来数据文件有4列,所以在popup窗口中会看到4列(比如列A,列B ,C列和D列)。 检查列A以外的所有列(即您的时间戳存在的位置)。 按OK。
注意:在这个解决scheme中,第一个时间戳(而不是范围)将显示为每个唯一的行,例如
0830-0845, Bob Hoskins, Jack Table, Phil Cup 0945-1000, Jane Dunnit, Henry Badass 1030-1045, Terry Turbo 1100-1115, Simon Car, Maggie Blah, Jack Paper
假设你的数据从A2开始。 parsing你的input作为固定宽度来隔离-
和第一个。 为第一列和第三列select文本。 将表格格式化为常规。 在D2中放:
=IF(E1<>E2,"S",IF(E2<>E3,"F",""))
并复制下来以适应。
将ColumnD,Paste Special,Values复制到顶部,并删除列D中的空白行。在B2中:
=IF(AND(D2="S",D3="F"),A2&"-"&C3,IF(D2="S",A2&"-"&C2,""))
并复制下来以适应。
将ColumnB,Paste Special,Values复制到顶部,并删除B列中空白的行。在A2 put =B2&", "&E2
并复制以适合。 将ColumnA,Paste Special,Column复制到顶部。
删除所有,但ColumnA。