类似于 Stephen Roy 于 2013 年 4 月 26 日提出的问题,由 Barry Houdini 回答。根据这个通用公式,我有一个命名范围
{=IFERROR(INDEX(Range,SMALL(IF(
MATCH(Range,Range,0)=ROW(INDIRECT("1:"&ROWS(Range))),
MATCH(Range,Range,0)),ROW(INDIRECT("1:"&ROWS(Range))))),"")}
[显然在 2003 年我不使用 IFERROR()]
“范围”本身就是一个命名数组公式。
该公式用于从一个范围中提取唯一条目并将它们排列在另一个“范围”的“顶部”。但是,INDEX() 似乎只“存储”一个值,而不是预期的数组。Barry 谈到将 ROW() 包装在另一个函数中以丢失 {array}。看起来第一个 ROW() 返回多个值并且工作正常,它是最后一个 ROW() 似乎只减少到第一个数组条目,从而导致 INDEX() 只返回一个值。但是,我没有尝试将其存储在内存中,而是选择了一个多单元格范围进行输出,并使用 CSE,它运行良好。但我不想这样做。
我尝试过使用 INDIRECT(),但根本无法让它发挥作用。
感谢你们的想法,伊恩·泰勒