2017-02-22 4 views
0

私の仕事のノートパソコンのセキュリティは私をさせてくれて申し訳ありませんが、ここにテーブルを貼り付けることができません。 私は複数の繰り返し値を持つ行を持っています。たとえば、columnBから2S、3S、1S、および3Sを含むBIへ。 最後の列の値は3です。変更前の値の3の列の最後の数を数えたいと思います。Excel:カウントしない。最後の行の値が行に発生しました

例えば:行は

2 2 3 3 3 1 1 2 2 3 3 2 2 2 2 2のように見える場合は、最後の値が2であり、それがあったので、その後、私が欲しい答えは、5です最後の5列分あります。

私はそれが理に適ったと思います。

ありがとう、 Parul。あなたはこの1つのようにVBAでのUDF(ユーザー定義関数)を作成することによって、それを行うことができ

+0

これで、最後の値が右から左に何回繰り返されたのかを数えたいと思っていますか? – Mike

+0

はい、まさに私がやろうとしていることです。 – Parul

答えて

0

:この例のデータについては

=CountLast(B1:BI1,BI1) 

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(A1:P1,P1) 

であり、結果の答えは5

何が起こっているのかUDFが範囲内の最後のセルを見つけてから、そこから開始して、関数を提供し、右から左に作業する選択された値と比較しています(step -1)それらは一致し、最後にカウントされた値を返します。

+0

ありがとうございます。比較される値がテキストの場合は、ただ一つ強化してください。 – Parul

+0

値が 'text'か何か他のものであれば問題ありません。これは、あなたが探している値が、右から左に向かうセルの隣にあるかどうかをチェックしていることを確認するものではありません。変更が必要な「関数」の部分は、先頭の宣言になります。おそらく、 'As Integer'を取り出して' y'のままにしておくだけです。それでは、「y」が何であるかは関係ありません。 – Mike

関連する問題