如何在单元格中自动输入工作表名称,其中包含固定单元格中数据的最大值?

如何在单元格中自动输入工作表名称,其中包含固定单元格中数据的最大值?

假设我有一个单元格 C5,并且我想在第一个工作表的单元格中显示工作表名称,该工作表在该工作簿的所有工作表中具有最高的 C5 值。

注意,不是C5的最大值,而是工作表名称

我不想要这个:

=MAX('第一个工作表名称:最后一个工作表名称'!B1)

我已经知道这一点,并且我正在寻求其他的东西

答案1

您可以使用查找()

首先我们创建一个表查找()使用。使用姓名经理在里面数据选项卡,我们创建一个Name名为工作表并为其指定以下公式:

=SUBSTITUTE(GET.WORKBOOK(1),"["&GET.WORKBOOK(16)&"]","")

在此处输入图片描述

然后在任意一张表中选取某个单元格,比如I2并输入:

=IF(COUNTA(Sheets)>=ROW($A1),INDEX(Sheets, ROW($A1)), "")

并抄下来。(这将创建工作表名称列表)

氢气进入:

=IF(I2="","",INDIRECT(I2 & "!C5"))

并抄下来。ColsH查找表如下:

在此处输入图片描述

最后进行以下查找:

=VLOOKUP(MAX(H:H),H:I,2,FALSE)

检索工作表名称

答案2

不使用 VBA 返回 Sheet 名称有点棘手。
您可以做的一件事是手动比较单元格和 Sheet,但这仅在您只有少量 Sheet 和单元格时才可行。

=IF(Sheet1!C5>Sheet2!C5;IF(Sheet1!C5>Sheet3!C5;"Sheet1";"Sheet3");IF(Sheet2!C5>Sheet3!C5;"Sheet2";"Sheet3"))

简单比较“Sheet1”、“Sheet2”和“Sheet3”中 C5 的值。

我知道的显示工作表名称的唯一方法是使用类似以下内容的方法:

=MID(CELL("filename";A1);FIND("]";CELL("filename";A1))+1;255)

这将仅返回指定单元格的工作表,在本例中为代码所在的工作表。

或者在 VBA 中,类似以下内容:

Dim cell As Range
Dim cellAddress As String
Set cell = ThisWorkbook.Worksheets(1).Cells(1, 1)
cellAddress = cell.Parent.Name

现在我们只需将其与正确的单元格结合起来。还没有弄清楚那部分。

相关内容