Excel 工作表之间的交叉引用数据以及条件语句

Excel 工作表之间的交叉引用数据以及条件语句

我有一个包含 2 张表的 Excel 工作簿。

第 1 张表:旧用户数据 第 2 张表:新用户数据

我想向第二张表添加一个新列,其中包含第一张表中的旧用户 ID。为此,我想比较两张表之间的电子邮件地址。

我认为我想要的伪代码如下:

IF (NEW!E2 equal OLD!H2) THEN (NEW!B2 becomes OLD!A2)

到目前为止,我在第二张表的新栏目中已有以下内容:

=IF(NEW!E2=OLD!H2,NEW!B2=OLD!A2)

似乎是 IF 语句的逻辑错误。

答案1

ExcelIF公式的结构如下:

IF( <condition> , <value if condition true> , <value if condition false> )

你的公式马上就出现两个大问题:

  • 沒有虚假条款。
  • 真实子句是条件子句,而不是值子句。

您需要的是另一列,其中包含一个 if 语句(伪!):

IF (NEW!E2 equal OLD!H2) THEN (set this cell to OLD!A2)
                         ELSE (set this cell to NEW!B2)

或者,在 Excel 中:

IF( NEW!E2=OLD!H2 , OLD!A2 , NEW!B2 )

显然,您的工作表上最终会有两个 ID 列。但是,一旦完成,您应该能够复制/粘贴特殊值到实际列上。

更新

取决于你的数据结构可能无论如何都是无用的。

最好if用某种形式的查找来替换 的条件,这样你就可以得到(伪!):

IF( [NEW!E2] is in OLD list ) THEN (set this cell to ID of matching entry)
                              ELSE (set this cell to NEW!B2)

或者,在 Excel 中(换行以便适合!):

IF( VLOOKUP(NEW!E2,OLD!A1:G1000,1) = NEW!E2 ,
    VLOOKUP(NEW!E2,OLD!A1:G1000,2) ,
    NEW!B2)

显然,我已经编造了,OLD!A1:G1000所以你必须提供你真实的表格尺寸,并且你需要更改匹配的列号(中的最后一个值VLOOKUP),并确保中的数据OLD按电子邮件地址排序,重构OLD以便电子邮件地址是第一列(VLOOKUP需要升序并且仅在第一列中查找数据 - 然后返回请求列中同一行的数据)。

更新2:

我想我稍微误解了你的问题,因为你要求的是一列只是匹配的旧值 - 在这种情况下,您不需要 false 子句,因为当没有匹配时,您想要“无”。在这种情况下,您只需使用""“不执行任何操作”false 子句即可获得空白单元格。

相关内容