我正在查看单元格A2:A201的值为1.创建一个包含1的所有项目的数组列表,其中包含每行的单元格E和B的内容。
我目前使用的方式并不是一个干净的版本,所以我正在寻求简化
=INDEX(tbl,SMALL(IF((INDEX(tbl,,12,1)<=1)*(INDEX(tbl,,12,1)>=1),ROW(tbl)-MIN(ROW(tbl))+1,""),ROWS($T$14:T14)),,1)
虽然有效,但我正在尝试简化并使其更好地使用,而不会创建多个表。
另外,我正在使用上述内容来获得玩家(单元格b)的位置(单元格e)。输出是乱序的,所以我真的很想把它们放在体育运动中。 PG名称,PG名称,SG名称,SG名称,SF名称,SF名称等。
答案 0 :(得分:1)
如果您希望直观地简化公式,可以消除的最大部分是ROW(tbl)-MIN(ROW(tbl))+1
。这会在 tbl 中生成位置,而不是工作表上的实际行。通过在第二行中启动 tbl ,您必须进行此计算。如果您只是在第1行启动 tbl ,则会变为ROW(tbl)
,因为 tbl 中的行将始终与工作表,不必因起始位置不同而进行调整。
为了从1和空白列中获得第二,第三等匹配,您需要提供循环计算。无论您使用数组公式还是提供类似数组计算的函数,您都希望将处理的行数减少到处理所需的最小值。
您可以使用命名范围(例如tbl
)执行此操作,然后您必须切断列以进行单独的列查找。如果数据发生更改,您还必须维护tbl
并调整其大小。这可以通过使用公式定义 tbl 来避免,该公式将行减少到A列中找到的最后一个数字。
=Sheet1!$A$1:INDEX(Sheet1!$E:$E, MATCH(1e99, Sheet1!$A:$A))
在处理 tbl 中的列时,您可以使用INDEX function“切片”列。将 row_num 留空(或 0 )以指示所有行,并提供您要处理的 column_num 。
较新的AGGREGATE¹ function可以快速检索第一,第二,第三等匹配到一列或多列。在使用 6 选项忽略错误时,使用SMALL sub-function(即 15 )并强制和不匹配为$DIV/0!
错误状态。< / p>
在检索过程中“即时”对数据进行排序是可能的,但更好的解决方案涉及“帮助”列。
¹ Excel 2010引入了AGGREGATE function。早期版本不提供。