Excel 公式用于在单元格有值时执行某些操作,如果没有值,则检查另一个单元格的值

Excel 公式用于在单元格有值时执行某些操作,如果没有值,则检查另一个单元格的值

我有一个 excel 文件,其中包含以下信息

姓名 类型 类型 2 日期 日期 2
罗恩 A 1;2
乔恩 A 2;3

我试图提取日期中的 1 和 2,或者日期 2 列中的 2 或 3,因此,如果类型为 A,则公式将中断并从日期中提取某些内容,但是,如果类型有其他值,那么我想检查类型 2,然后在日期 2 上运行公式,我知道这有点混乱

我现在有以下情况:

=IF(OR(Type="On-Call", Type 2="On-Call"),LEFT(Date, SEARCH(";",Date,1)),"")

当 Type 的值为 A 时,此方法有效,但如果没有,则不会显示任何内容

基本上我认为我需要的是如果类型具有值 A,则运行代码,但如果没有,则检查类型 2,如果它具有值 A,则在日期 2 上运行代码但嵌套的 IF 也给我带来了一些麻烦我遇到过类似的事情,但没有用:

=IF(OR(Sheet1!H2="On-Call"),LEFT(Sheet1!L2, SEARCH(";",Sheet1!L2,1)),IF(Sheet1!I2="On-Call"),LEFT(Sheet1!K2, SEARCH(";",SHEET1!K2,1)),"")

有人知道我怎样才能实现这样的目标吗?

提前致谢!

答案1

将以下公式调整到您的工作表/表格/范围。拖动它以填充其他单元格。

=IF(B2="A",LEFT(D2,SEARCH(";",D2)-1),IF(C2="A",LEFT(E2,SEARCH(";",E2)-1)))

它将 Type (B2) 与 进行比较A,并拆分 Date (D2)。如果未找到,则将 Type2 (C2) 与 进行比较A。如果找到,则拆分 Date2 (E2)。

答案2

解决此类问题的基本方法是:

=IFERROR(  VLOOKUP(H2,B2:D3,3,FALSE),  VLOOKUP(H2,C2:E3,3,FALSE)  )

使用 A1:E3 中的数据和单元格 H2 中的查找值。

您可以使用任何可行的查找,VLOOKUP之所以使用仅仅是因为它对大多数人来说都很熟悉。

这个想法是使用一个查找,如果失败则给出错误。如果成功,您将通过检查“类型”列并从“日期”列返回获得有效结果,在本例中,您1;2可以按照自己的意愿处理它。如果失败(错误),第二个查找将通过检查“类型 2”列并从“日期 2”列返回获得有效结果。

当然,这只是证明了这一点。其他事情也可能会造成影响。例如,两列中可能都没有匹配项。另一种可能是两列中都有匹配项,而你可以通过更复杂的方式选择你最关心的两列中的哪一列,这可能会使返回的结果复杂化。各种各样的事情。

对于早于的版本IFERROR,可以使用ISERROR

=IF(  ISERROR(VLOOKUP(H2,B2:D3,3,FALSE)),  VLOOKUP(H2,C2:E3,3,FALSE),  VLOOKUP(H2,B2:D3,3,FALSE)  )

它做同样的事情,只是更长的时间以适应不太快乐的方式。ISERROR回溯很长一段路,所以其中一个应该有用。

如果您的查找逻辑比所呈现的更复杂,则可能需要进行更多的调整才能适应,但这是一种简单、一年后易于遵循的方法。

相关内容