避免多次计算的更有效方法#3?
More Efficient Way to Avoid Multiple Calculations #3?
正在寻找一种更有效的方法,可能是 Min/Max 列下的数组公式。不确定数组公式是否适用于此函数,因为我无法使用它。
=ArrayFormula(MAX(INDIRECT("Data!E"&(K42:K169)&":E"&(K43:K170-1))))
=ARRAYFORMULA(MAX(VLOOKUP(K42:K169, {ROW(Data!A:A), Data!E:E}, 2, 0)&VLOOKUP(K43:K170-1, {ROW(Data!A:A), Data!E:E}, 2, 0)))
请注意,我使用的是 ROW(Data!A:A) 而不是简单的 ROW(A:A),因为当前 sheet 中的范围不适合 sheet 数据中的范围! .
这是我在 sheet 中复制的当前代码。
=MAX(INDIRECT("Data!E"&(K42-1)&":E"&(K43-1)))
只是需要一种更高效的方法。我是否更正了使用 INDIRECT 会导致计算时间变慢。
=ARRAYFORMULA(QUERY(TRANSPOSE(QUERY(TRANSPOSE(QUERY(SPLIT(TRANSPOSE(SPLIT(QUERY(
INDIRECT("Data!E"&K42&":E"&MAX(K42:K))&","&IF(MOD(ROW(
INDIRECT("Data!A1:A"&COUNTA(L42:L)*K41)), K41)=0, "♦", ),,999^99), "♦")), ","),
"where Col2 is not null", 0)),
"select "&TEXTJOIN(",", 1, IF(LEN(L42:L),
"max(Col"&ROW(A42:A)-ROW(A42)+1&")", ))&"")),
"select Col2"))
正在寻找一种更有效的方法,可能是 Min/Max 列下的数组公式。不确定数组公式是否适用于此函数,因为我无法使用它。
=ArrayFormula(MAX(INDIRECT("Data!E"&(K42:K169)&":E"&(K43:K170-1))))
=ARRAYFORMULA(MAX(VLOOKUP(K42:K169, {ROW(Data!A:A), Data!E:E}, 2, 0)&VLOOKUP(K43:K170-1, {ROW(Data!A:A), Data!E:E}, 2, 0)))
请注意,我使用的是 ROW(Data!A:A) 而不是简单的 ROW(A:A),因为当前 sheet 中的范围不适合 sheet 数据中的范围! .
这是我在 sheet 中复制的当前代码。
=MAX(INDIRECT("Data!E"&(K42-1)&":E"&(K43-1)))
只是需要一种更高效的方法。我是否更正了使用 INDIRECT 会导致计算时间变慢。
=ARRAYFORMULA(QUERY(TRANSPOSE(QUERY(TRANSPOSE(QUERY(SPLIT(TRANSPOSE(SPLIT(QUERY(
INDIRECT("Data!E"&K42&":E"&MAX(K42:K))&","&IF(MOD(ROW(
INDIRECT("Data!A1:A"&COUNTA(L42:L)*K41)), K41)=0, "♦", ),,999^99), "♦")), ","),
"where Col2 is not null", 0)),
"select "&TEXTJOIN(",", 1, IF(LEN(L42:L),
"max(Col"&ROW(A42:A)-ROW(A42)+1&")", ))&"")),
"select Col2"))