我是excel的新手。我有一张类似于下表的表格(日期,标识)
Date Id
02.06.2014 314
315
316
317
318
03.06.2014 326
327
328
329
04.06.2014 347
348
05.06.2014 356
357
358
359
我需要提取每天的起始ID和结束ID,我的结果应该类似于下表(日期,起始ID,结束ID)
Date Start id End id
02.06.2014 314 318
03.06.2014 326 329
04.06.2014 347 348
05.06.2014 356 359
工作表太大,无法手动完成。有没有办法在Excel中自动化该过程。如果是这样请帮助
答案 0 :(得分:1)
这个答案是务实的,试图让它保持相当简单,但允许你按照自己的要求自动化流程。它需要一些手动操作,并且只有在id
列中的值是唯一的时才有效。
第一步是压缩列A
以删除空单元格。这可以通过所谓的数组公式来完成,如在网络上的几个地方所解释的那样,例如here。在示例表中,我使用了
=INDEX($A$2:$A$16, SMALL(IF(ISBLANK($A$2:$A$16), "", ROW($A$2:$A$16)-MIN(ROW($A$2:$A$16))+1), ROW(A1)))
对于单元格D2
然后按 Ctrl + Shift + 输入以使其成为数组公式,从而确认了这一点。公式将用大括号括起来。单元格D2
现在应包含第一个日期值。现在抓住D2
的右下角并将其拉下以填充其他值。如果你拉得足够远,你将获得所有价值。之后,您将获得#NUM!
。如果这是一个问题,请查看前面的链接,了解如何使用IFERROR()
函数来避免这种情况。
接下来是E2
的公式:
=LOOKUP($D2,$A$2:$A$16,$B$2:$B$16)
再次,向下拉右下角以填充E
中的其他字段。请注意,此公式仅在列B
中的值唯一时才有效。如果不是这种情况,则需要更复杂的公式。
最后,要填充列F
,请使用
=INDEX($B$2:$B$16,MATCH($E3,$B$2:$B$16)-1)
单元格F2
中的并向下拉。请注意,此公式不适用于列F
中的最后一个值。最简单的方法是手动填写该值,如果您不喜欢,请在网络上搜索公式以查找B
列中的最后一个值。
答案 1 :(得分:1)
我的解决方案没有任何公式将是这样的...但你需要设置如下的原始数据... 即重复日期标签 ..(这更容易做到作为一项清理工作)...例如在单元格A3中键入“= A2”然后选择范围A3到A16或END例如..按Ctrl + G ..单击特殊...选择空白...将选择所有空白单元格...和按Ctrl + V粘贴公式...这将根据前一行自动填写每行的日期......
Date ID
02/06/2014 314
02/06/2014 315
02/06/2014 316
02/06/2014 317
02/06/2014 318
03/06/2014 326
03/06/2014 327
03/06/2014 328
03/06/2014 329
04/06/2014 347
04/06/2014 348
05/06/2014 356
05/06/2014 357
05/06/2014 358
05/06/2014 359
然后执行数据透视表..使用行中的日期..和最小ID和最大值的ID。示例如下..
请在评论中告诉我这是否对您有所帮助。