3

私は1000行15列のデータシートでExcelで作業しています。現在、列の1つに、人の名前と混合された多くのデータがあります(例については以下を参照してください)。ピボットテーブルで使用できるように、各人の名前がデータシートに何回表示されるかを確認したいと思います。名前の表示方法に特定の形式や順序はありません。ランダムです。その列全体を検索し、各人の名前が表示される回数をカウントするためにExcelでコーディングする方法はありますか?

Column D
21421Adam14234
2323xxx Bob 66
23 asjdxx Jacob 665
43 Tim 5935539
2394Bob 88

試行錯誤の末、名前のリストを1行に1つずつ生成し、比較のために別の列に配置することができます。

4

2 に答える 2

5

私はあなたがあなたの答えを持っていることを知っていますが、なぜCOUNTIFワイルドカードで使用しませんか?これにはVBAは必要ありません:)

この例を参照してください

=COUNTIF($A$1:$A$5,"*"&C1&"*")

スナップショット

ここに画像の説明を入力してください

于 2012-06-20T03:32:35.420 に答える
2

VBAにタグを付けていませんが、VBAなしでこれを行う方法があるかどうかはわかりません。以下にカスタム関数を作成しました。これを実装するには、次の手順を実行します。

1)列E1から始まる希望の名前をリストします。

2)この関数をVBAエディターに挿入しますA)Alt + F11を押しますB)メニューバーから[挿入]> [モジュール]をクリックしますC)このコードをモジュールにコピーします

Option Explicit

Function findString(rngString As Range, rngSearch As Range) As Long

Dim cel As Range
Dim i As Integer

i = 0

For Each cel In rngSearch
    If InStr(1, cel.Text, rngString.Value) > 0 Then 
        cel.offset(,-1) = rngString.Value 'places the name in cell to right of search range
        i = i + 1
    End If
Next

findString = i

End Function

3)F1に次の式を入力します

=findstring(E1,$D$1:$D$5)

4)F列の数式を実行して、目的の各名前の数を取得します。

于 2012-06-19T20:30:47.357 に答える