【问题标题】:Using strings in INDIRECT function to manipulate cell address在 INDIRECT 函数中使用字符串来操作单元格地址
【发布时间】:2021-09-28 03:03:25
【问题描述】:

在尝试使用如下所示的 INDIRECT 函数。

=INDIRECT("B"&SUMPRODUCT((sheet1!C3:Q60=F4)*ROW(sheet1!C3:Q60)))

在同一张表中写入时它可以工作,但当此函数用于与 INDIRECT 函数中使用的数据不同的表中时,它将不起作用。

根据SUMPRODUCT((sheet1!C3:Q60=F4)*ROW(sheet1!C3:Q60)),我想访问 B1、B2、B3...等的值。

但当函数运行时,它会返回活动工作表中的值。

我想要这样的东西

=INDIRECT((sheet1!"B"&SUMPRODUCT((data=AW4)*ROW(data))))

这可能实现吗?

【问题讨论】:

  • 你需要把sheet1!放到"B"前面B前面。然后它应该工作。至少它对我有用。但最好按照@teylyn 的建议将sumproduct 放在index 中。
  • 对上一个问题的多个答案表明您可以使用INDEX() 而不是那个易变的INDIRECT()。你为什么决定使用它?

标签: excel excel-formula


【解决方案1】:

我什至不会尝试解开 Sumproduct 以及您在此处使用它的原因,但我只想说 Indirect 需要文本输入,可以拼接在一起。

如果要创建对 Sheet1 的 B 列的引用,并且行号由公式计算,那么 Indirect 的语法为

=INDIRECT("Sheet1!B"&<your formula that returns a whole number>)

您可能需要在单独的单元格中检查您的公式,以确保它确实返回所需的行号。

Indirect() 有它的问题,但是。它是不稳定的,如果大量使用,它会降低工作簿的性能。例如,使用 Index() 可能会更有效

=index(sheet1!B:B,<your formula that returns a whole number>)

【讨论】:

  • 谢谢。我是 Excel 和 VBA 的新手。您建议的两个公式都很有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
  • 2019-04-17
  • 2013-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多