如何在没有间隙的情况下计算非零值

时间:2016-05-08 15:54:28

标签: excel

请注意A列和A列中的以下值。乙

1    2280  
2    0  
3    1250  
4    0  
5    1245  
6    0  
7    0  
8    0  
9    1258  
10   0  

我需要按照C和C列中的公式进行操作。 D.请帮忙

1    2280  
3    1250  
5    1245  
9    1258 

2 个答案:

答案 0 :(得分:1)

在C1使用中:

=IFERROR(AGGREGATE(15,6,(ROW($B$1:$B$10)-ROW($B$1)+1)/($B$1:$B$10<>0),ROWS($A$1:$A1)),"")

返回指定范围内B中没有零的行号列表。将其复制下来。它将显示&#34;&#34;当数字用完时无法显示。

在D2中使用:

=IFERROR(INDEX($B$1:$B$10,C1),"")

它将在B中将相应的值显示为C中列出的行号。将公式复制下来。与第一个公式一样,IFERROR将使其显示&#34;&#34;当它用完了数字以便查找。

答案 1 :(得分:0)

C中的公式:

=IF($B1>0;A1;"")

D中的公式:

=IF($B1>0;B1;"")

VBA解决方案:

Sub values()

  linea = 1

  For Each cell In Range("b1:b10")

  If cell > 0 Then
    Cells(linea, 3) = cell
    Cells(linea, 4) = Cells(cell.Row, cell.Column - 1)
    linea = linea + 1
  End If

Next cell

End Sub