如果值等于1,则复制单元格数组

时间:2015-12-02 00:33:39

标签: excel

enter image description here我正在查看单元格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名称等。

1 个答案:

答案 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

TBL_INDEX

较新的AGGREGATE¹ function可以快速检索第一,第二,第三等匹配到一列或多列。在使用 6 选项忽略错误时,使用SMALL sub-function(即 15 )并强制和不匹配为$DIV/0!错误状态。< / p>

在检索过程中“即时”对数据进行排序是可能的,但更好的解决方案涉及“帮助”列。

¹ Excel 2010引入了AGGREGATE function。早期版本不提供。