【问题标题】:Why the INDIRECT excel method doesn't work as expected为什么 INDIRECT excel 方法不能按预期工作
【发布时间】:2020-09-14 22:13:21
【问题描述】:

这两种方法带来不同的结果。为什么?

=OR(NOT(ISERROR(SEARCH('[FILTER_OBJECT_SETTING.xlsx]Filter Object'!$A$1:$A$5);A1))))

正确的值!!我明白了!有效!

=OR(NOT(ISERROR(SEARCH('[FILTER_OBJECT_SETTING.xlsx]Filter Object'!$A$1:INDIRECT("$A$5");A1))))

值不正确!!我错了!它没有按预期工作!

在A1中有以下值:

0,"Annotations","10:00:00:00","10:00:08:23","Testo"

相反,在“FILTER_OBJECT_SETTING.xlsx”中有以下从 A1 到 A5 的值:

"Abbigliamento"
"Vestito"
"Porta"
"Testo"
"Statua"

【问题讨论】:

  • 这似乎是一个 XY 问题。为什么要使用 INDIRECT?
  • 文件 FILTER_OBJECT_SETTING.xlsx 中的值列表实际上很长,远远超过 5 个值,并且会随着其他值的添加而更新。我想使用这个函数动态指向最新的单元格:=ROW(OFFSET(A1;COUNTA(A:A)-1;0))

标签: excel excel-indirect


【解决方案1】:

使用 INDEX/MATCH 返回最后一个单元格:

=OR(ISNUMBER(SEARCH('[FILTER_OBJECT_SETTING.xlsx]Filter Object'!$A$1:INDEX('[FILTER_OBJECT_SETTING.xlsx]Filter Object'!$A:$A;MATCH("zzz";'[FILTER_OBJECT_SETTING.xlsx]Filter Object'!$A:$A));A1)))

【讨论】:

  • 你的函数只是少了一个 $。它实际上是: =OR(ISNUMBER(SEARCH('[FILTER_OBJECT_SETTING.xlsx]Filter Object'!$A$1:INDEX('[FILTER_OBJECT_SETTING.xlsx]Filter Object'!$A:$A;MATCH("zzz";'[ FILTER_OBJECT_SETTING.xlsx]Filter Object'!$A:$A));$A4))) 你是怎么这么快解决这个问题的?我真的很震惊?你真的很棒!! :D 请告诉我!
猜你喜欢
  • 2016-01-16
  • 2012-06-19
  • 2018-11-15
  • 2021-05-30
  • 2020-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多