根据excel中的其他列提取列中的值

我是新来的excel。 我有一个类似于下表的Excel工作表(Date,Id)

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为每一天,我的结果应该像下面的表(date,开始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中自动执行这个过程。 如果有请请帮忙

这个答案是务实的,试图保持简单但允许你自动化你所要求的过程。 它需要一些手动操作,只有在列id中的值是唯一的时才有效。

截图来指导答案

第一步是浓缩柱A以去除空单元格。 这可以用一个所谓的数组公式在网上的几个地方解释,例如这里 。 在示例表中,我使用了

 =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 + Enter将其作为一个数组公式来确认。 公式将被大括号包围。 单元格D2现在应该包含第一个date值。 现在抓住D2右下angular并拉下来填充其他值。 如果你拉得够远,你将拥有所有的价值。 之后,你会得到#NUM! 。 如果这是一个问题,请查看以前的链接,了解如何通过使用IFERROR()函数来避免这种情况。

接下来是E2的公式:

 =LOOKUP($D2,$A$2:$A$16,$B$2:$B$16) 

再次,拉下右下angular以填补E的其他字段。 请注意,只有列B中的值是唯一的,此公式才有效。 如果情况并非如此,则需要更复杂的公式。

最后,填充F列,使用

 =INDEX($B$2:$B$16,MATCH($E3,$B$2:$B$16)-1) 

在单元格F2并下拉。 请注意,此公式不适用于列F的最后一个值。 最简单的方法是手动填写该值,或者,如果您不喜欢,请在Web上search公式以find列B的最后一个值。

我的解决scheme没有任何公式将是这样的…但是你需要设置像下面的oroginal数据… 这是重复date标签 ..(这是更容易做清理练习)…例如在单元格A3中键入“= A2”,然后select范围A3到A16或END。例如按Ctrl + G ..单击特殊…select空白…将select所有空白单元格…和做一个Ctrl + V来粘贴公式…这将自动填写每行的date基于前一行…

在这里输入图像说明

 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 

然后,做一个数据透视表..与行中的date..和身份证的最小值和身份证的价值最大值..例如下面..

在这里输入图像说明

请让我知道这是否帮助你..在评论中。