Excel:如何在非零值之后拾取行中的第一个零

Excel:如何在非零值之后拾取行中的第一个零,excel,excel-formula,Excel,Excel Formula,在一行数据中,如何在非零值之后找到第一个零所在的列? =FIND(“0”,TEXTJOIN(,A2:E2),FIND(“1”,TEXTJOIN(,A2:E2))) 编辑: 要使用任何非零值,请执行以下操作: =INDEX(OFFSET(A2,-(ROW()-1),MATCH(TRUE,INDEX(A2:E2<>0,),0),,COLUMNS(A2:E2)-MATCH(TRUE,INDEX(A2:E2<>0,),0)),1,MATCH(0,OFFSET(A2,0,MATCH

在一行数据中,如何在非零值之后找到第一个零所在的列?
=FIND(“0”,TEXTJOIN(,A2:E2),FIND(“1”,TEXTJOIN(,A2:E2)))

编辑:

要使用任何非零值,请执行以下操作:

=INDEX(OFFSET(A2,-(ROW()-1),MATCH(TRUE,INDEX(A2:E2<>0,),0),,COLUMNS(A2:E2)-MATCH(TRUE,INDEX(A2:E2<>0,),0)),1,MATCH(0,OFFSET(A2,0,MATCH(TRUE,INDEX(A2:E2<>0,),0),,COLUMNS(A2:E2)-MATCH(TRUE,INDEX(A2:E2<>0,),0)),0))
=索引(偏移量(A2,-(行()-1),匹配(真,索引(A2:E20,),0),列(A2:E2)-匹配(真,索引(A2:E20,),0)),1,匹配(0,偏移量(A2,0,匹配(真,索引(A2:E20,),0),列(A2:E2)-匹配(真,索引(A2:E20,),0))
子FindNonZero()
对于i=2到4
对于j=1到5
如果单元格(i,j)的值为0,则
对于k=j到5
如果单元格(i,k).Value=0,则
单元格(i,7)。Value=“COL”和k
退出
如果结束
下一个k
退出
如果结束
下一个j
接下来我
端接头


您可以在VBA中创建自己的函数

Function FindZero(TargetRange as range) As Long
   Dim aCell as range 

   For each aCell in TargetRange 
      if aCell>0 AND aCell.Offset(0,1) = 0 then
         FindZero = aCell.Offset(0,1).Column
         Exit For
      end if 
   next aCell
end function 
然后在某个牢房里

=FindZero(A1:G1)
`使用以下公式:

=INDEX($1:$1,AGGREGATE(15,6,COLUMN(B2:E2)/((A2:D2<>0)*(B2:E2=0)),1))
=索引($1:$1,聚合(15,6,列(B2:E2)/((A2:D20)*(B2:E2=0)),1))

这个索引/聚合/匹配应该可以为您完成

=INDEX(INDEX(C$1:G$1, 1, AGGREGATE(15, 6, COLUMN(A:E)/(C2:G2>0), 1)):G$1, MATCH(0, INDEX(C2:G2, 1, AGGREGATE(15, 6, COLUMN(A:E)/(C2:G2>0), 1)):G2, 0))
请注意,(A:E)列返回C$1:G$1和C2:G2内的位置


可以是任何数字,而不仅仅是1。
=INDEX(INDEX(C$1:G$1, 1, AGGREGATE(15, 6, COLUMN(A:E)/(C2:G2>0), 1)):G$1, MATCH(0, INDEX(C2:G2, 1, AGGREGATE(15, 6, COLUMN(A:E)/(C2:G2>0), 1)):G2, 0))