我有一个电子表格,用于管理时段中的组列表。想象一下,下面是细胞:
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
逗号是单元格的墙,因此时间戳和名称位于不同的单元格中。这需要使用公式来实现,因为源数据将定期更新
答案 0 :(得分:2)
使用数据透视表非常容易维护的部分解决方案:
获取开始时间列:
添加公式为=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”,以便正确显示时间
在可维护性方面:
<强>及其简化/假设:强>
对于excel,我的建议是尽可能多地利用现有工具,而不是使用过于复杂的单元格公式,这些公式很难调试,效率可能会降低。
让我知道这个输出是否足够有用,否则我会看到还能做些什么。
答案 1 :(得分:1)
我按照Excel 2010执行了这些步骤,但这也适用于其他版本(稍作修改)。
<强>步骤:强>
a)选择所有数据单元格 b)转到数据 - &gt;数据工具 - &gt;删除重复项 c)似乎数据文件中有4列,因此在弹出窗口中您将看到4列(例如,列A,列B,列C和列D)。检查除A列之外的所有列(即存在时间戳的位置)。按OK。
注意:在此解决方案中,第一个时间戳(而不是范围)将显示每个唯一行,例如
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
答案 2 :(得分:0)
假设您的数据在A2中开始。将输入解析为固定宽度以隔离-
和第一个,
。为第一列和第三列选择“文本”。将工作表格式化为常规。在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中放置=B2&", "&E2
并复制以适应。将ColumnA,Paste Special,Values复制到顶部。
删除除ColumnA之外的所有内容。