查找表/行中的所有非零值

时间:2011-10-18 22:46:05

标签: excel worksheet-function

一直在寻找并决定把它扔出去看看是否有人可以为此提供一个好的方向。我的表有大约24列的~100(和扩展)行,看起来像:

ID  yr1 yr2 yr3 yr4

id1  $-      $-      $35     $-   
id2  $40     $45     $-      $-   
id3  $35     $-      $30     $37 

我想忽略所有零值并创建此表的表示,如下所示(我不关心列标题):

ID          
id1  $35        
id2  $40     $45    
id3  $35     $30     $37 

似乎应该有一个简单的(ish)解决方案,但我还没想到它。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

[更新:删除了初步建议并替换为VBA解决方案]

Sub ReArrange()
Dim ws As Worksheet
Dim X
Dim lngRow As Long
Dim lngCol As Long
X = [a1].CurrentRegion
For lngRow = 1 To UBound(X, 1)
    For lngCol = 1 To UBound(X, 2)
        If X(lngRow, lngCol) = 0 Then X(lngRow, lngCol) = "=1/0"
    Next
Next
Application.ScreenUpdating = False
Set ws = Sheets.Add
ws.[a1].Resize(UBound(X, 1), UBound(X, 2)) = X
On Error Resume Next
ws.UsedRange.SpecialCells(xlCellTypeFormulas, 16).Delete xlToLeft
On Error GoTo 0
Application.ScreenUpdating = True
End Sub

enter image description here