Excel - 确定两个工作表之间是否存在工作表?

标签 excel if-statement excel-formula worksheet-function worksheet

我有 5 张工作表:(1) 摘要 (2) 2020 (3) 2019 (4) 2018 (5) 2017

在我的“摘要”工作表中,A 列的单元格中包含每个工作表的名称(A1:2020、A2:2019、A3:2018、A4:2017),B 列的单元格中包含数字“1”每个对应的行。

假设我删除了“2019”工作表,以便它不再位于工作表“2020”和“2017”之间 - 是否有任何公式可以用来在第 2 行中标记该工作表?也许通过 B 列的某种“if(..,1,0)”公式?我不想使用 VBA。

最佳答案

Excel 中提供了多种错误检查函数,其中大多数都适合您的情况。最简单的方法是使用 IFERROR 并仅引用其中一张工作表上的单元格,如下所示:

=IFERROR('2020'!A1,"Missing")

如果公式因找不到单元格而收到错误值,则会显示文本“Missing”;否则,它将显示单元格的值。

这样做的缺点是,将工作表名称硬编码到函数中,如果删除工作表,工作表名称将在公式中替换为 #Ref!,因此即使恢复工作表,公式需要更改。

我们可以通过使用 INDIRECT 和 IFERROR 来增强功能。这将获取一个文本字符串并将其转换为单元格引用。因此,假设 A 列中有工作表名称,我们可以这样做:

=IFERROR(Indirect(A1 & "!A1"),"Missing")

INDIRECT 函数获取 A1 中的,并将其与文本字符串组合,并将整个内容作为单元格引用读取。这具有相同的结果,但更可靠,因为删除工作表然后替换它会清除错误。

为了获得更详细的结果,我们可以使用 IF 和 ISERROR,而不是使用 IFERROR。它使我们能够更好地控制结果。

=IF(ISERROR(INDIRECT(A1 & "!A1")),"Missing","Found")

如果第一个参数抛出错误,ISERROR 返回 TRUE,如果没有,则返回 FALSE。如果工作表存在,则返回“Found”,如果不存在,则返回“Missing”。

关于Excel - 确定两个工作表之间是否存在工作表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71862776/

相关文章:

vba - 转置大型数据集

用于比较具有重复值的列的 Excel 函数

excel - 有没有办法让我的公式引用单个单元格值,以便我可以使用一个单元格更改多个公式?

Excel:检查单元格是否包含文本字符串中的数字

arrays - 将 Excel 范围转换为 VBA 字符串

python3 : how to use for loop and if statements over class attributes?

python - Python 中使用 if/else 语句的 while 循环

javascript - jQuery if 语句的问题

java - 如何使用 iText 查找文本并将其替换为 pdf 文件

excel - 从工作表中删除特定形状