我有一个 Excel 文件,需要以下内容。
一个 Excel 文件中有两个工作表。第一个工作表在 C 和 D 列中显示日期和时间值。第二个工作表也在 A 和 B 列中显示日期和时间值。
我想将工作表 1 中的日期和时间与工作表 2 中的日期和时间进行匹配,如果匹配,则将工作表 2 的 C 列(日期)放在工作表 1 的 G 列中。
例如,在工作表 1 中,单元格 C3 和 D3 分别为“2/24/2009”和“15:00”。在工作表 2 中,与 A13 和 B13 匹配,因此我们从工作表 2 中取出 C13 并将其放置在工作表 1 的 G3 中。
我希望能够替换工作表 1 和工作表 2 中的单元格并且它们能够重新填充正确的数据。
答案1
这可以在不改变原始数据布局或连接任何数据的情况下完成。你可以像这样使用 Index/Match 组合:
=IFERROR(INDEX(Sheet2!$C$1:$C$10,MATCH(Sheet1!C2+Sheet1!D2,INDEX(Sheet2!$A$1:$A$10+Sheet2!$B$1:$B$10,0),0)),"")
答案2
你可以使用=VLOOKUP
以及两个辅助柱。
句法:=VLOOKUP( value, table_array, index_number, [not_exact_match] )
自从查找只能比较单个列,您需要将两列日期和时间合并到一个辅助列中:
在 Sheet 1 中,将其放在 F 列并向下填充:
=C2 & "-" & D2
。
这将创建我们的辅助列,如屏幕截图所示。
不用担心最后的错误时间格式。在工作表 2 中,您必须插入一个新的空列 A,以便日期和时间列向右移动一列。
对于 VLOOKUP 来说,重要的是要搜索的值位于工作表 2 中搜索表的第一列。因此,这次我们使用工作表 2 中的 A 列来创建辅助列。
=B3 & "-" & C3
将其放在第 2 张表的空白 A 列中并再次填写: 。现在我们准备使用 VLOOKUP。将此公式插入工作表 1 的 G 列并向下填充。
=VLOOKUP(F2,sheet2!$A$2:$D$4,4,FALSE)
这将在工作表 1 单元格 F2 中搜索工作表 2 列 A 的第一列中的值。
匹配后,它将从工作表 2 的表中返回所需列的值。在您的示例中,它应该是 D 列(记住移位)
其他外观改进
- 要隐藏不匹配(#NA),您可以使用=IF、=ISNA 和 VLOOKUP 公式的组合。
=IF(ISNA(VLOOKUP(F2,sheet2!$A$2:$D$4,4,FALSE)),"",VLOOKUP(F2,sheet2!$A$2:$D$4,4,FALSE))