如何计算非零值没有差距
请注意A列和B列中的以下值。
1 2280 2 0 3 1250 4 0 5 1245 6 0 7 0 8 0 9 1258 10 0
我需要C和D列中的公式,请帮助
1 2280 3 1250 5 1245 9 1258
在C1中使用:
=IFERROR(AGGREGATE(15,6,(ROW($B$1:$B$10)-ROW($B$1)+1)/($B$1:$B$10<>0),ROWS($A$1:$A1)),"")
返回指定范围内B中没有零点的行号列表。 把它复制下来。 当数字显示不足时,将显示“”。
在D2中使用:
=IFERROR(INDEX($B$1:$B$10,C1),"")
它将在B中显示相应的值到C中列出的行号。向下复制公式。 就像第一个公式一样,IFERROR会在数字不足的时候显示“”。
公式C:
=IF($B1>0;A1;"")
D中的公式
=IF($B1>0;B1;"")
VBA解决scheme:
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