0

私はより複雑なスプレッドシートを持っていますが、単純なスプレッドシートで何をしようとしているのかを説明します。
2 つの列があり、最初の列には名があり、2 番目の列には姓があります。

例えば:

Column1
Michael;
Michael;
Michael;
George;
Michael;
Henry;       

Column 2
Keaton;
Douglas;
Jackson;
Washington;
Jordan;
Ford;

"Michael" に一致するすべての行を列 1 で検索し、それらの "Michael" の名に関連付けられているすべての姓を返す Excel 数式または vba 関数を作成したいと思います。できれば、間にスペースを入れて姓を連結します。Excel の Vlookup、Index、Match、および Array 関数は、最初の "Michael" 姓のみを返すため、機能しません。以下の VBA 関数をテストしましたが、動作しているように見えますが、この関数に関するフィードバックや、動作する数式に関する提案をお待ちしております。

したがって、上記の列に対する関数の出力は次のようになります。

「(キートン)(ダグラス)(ジャクソン)(ジョーダン)」

どんな助けや提案も大歓迎です。

VBA コード。
SourceArray は First Names、ID は「Michael」、TargetArray は Last Names です。

Public Function DrawID(arrInput As Variant, ID As String, arrOutput As Variant)
Dim ArraySize As Integer
Dim i As Integer

ArraySize = Application.WorksheetFunction.CountA(arrInput)
i = 1
Do While i <= ArraySize
    If arrInput(i) = ID Then
        DrawID = DrawID & " (" & arrOutput(i) & ")"
    End If
    i = i + 1
Loop

End Function
4

1 に答える 1

0

ピボットテーブルが必要な継ぎ目。試してみる。

を取得するfirstname lastnameには、連結を使用して 3 番目の列を追加することをお勧めします (例: C1=A1&" "&B1)

于 2013-08-08T10:19:53.540 に答える