我有一个包含 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 子句即可获得空白单元格。