2017-02-22 66 views
0

很抱歉我不能在這裏粘貼表作爲我的工作筆記本電腦的安全不讓我。 我有多個重複值的行,例如columnB到BI再次含有2S,3S,1S,爲3s。 最後一列的值是3.我想在最後一列中有多少列是值3,然後它變成了別的東西。Excel:計數。次一排最後一個值發生

例如:如果該行看起來像

2 2 3 3 3 1 1 2 2 3 3 2 2 2 2 2,那麼我想答案是5,因爲最後一個值是2,這是最後5列。

我希望這是有道理的。

謝謝 Parul。

+0

所以,你想算最後一個值重複了多少遍從右到左? – Mike

+0

是的,這正是我想要做的。 – Parul

回答

0

你可以通過這樣一個在VBA創建UDF(用戶定義函數)做到這一點:

Function CountLast(x As Range, y As Integer) 

    Dim lColumn, count 
    lColumn = x.Cells(x.count).Column 'Get last column in range x 
    count = 0 
    For i = lColumn To 0 Step -1  'Start with last column and work from right to left 
     If Cells(1, i).Value <> y Then 'Compare value of each cell with the value provided in y and leave the loop if not found 
      Exit For 
     End If 
     count = count + 1    'Counts how many times the value is found 
    Next i 

    CountLast = count     'Returns the counted value 
End Function 

然後你會使用這樣的:

=CountLast(B1:BI1,BI1) 

對於示例數據你提供你的問題我用:

=CountLast(A1:P1,P1) 

和由此產生的答案是5

正在發生的事情是,UDF是找到該範圍內的最後一個單元格,然後開始有比較它選擇的值,你也提供功能和從右至左(step -1),那麼它只要計數它們匹配並最終返回計數值。

+0

非常感謝。請只做一個改進,如果要比較的值是文本。 – Parul

+0

如果該值是「text」或其他內容,則無關緊要。這並不是檢查它只是檢查你正在尋找的值是否在它右邊到左邊的單元格旁邊。可能需要更改的'function'部分是頂部的聲明。你可以把'As Integer'取出來,只留下'y'。那麼'y'是什麼都沒有關係。 – Mike

相關問題