探している数式は (d3 で): =IF($C$2:$C$999=$A4;$A$2:$A$999;"") +ctrl+shift+enter
必ず配列として入力してください
(注:地域の設定によっては、;をに変更する必要がある場合もあります)
C のデータが現在の Ai と一致する場合、これは A の内容を返します。結果は配列であるため、現在は 1 つの結果しか表示されませんが、Transpose() を使用して同じ行で複数のセルを選択すると、F2 で ctrl+shift+enter を使用すると、すべての結果が行に表示されます! 例: D3:K3 を選択し、F2 を押し、式を書きます: =Transpose(IF($C$2:$C$999=$A4;$A$2:$A$999;""))、Ctrl+Shift+Enter を押します。 . (再度、次のように記述する必要がある場合があります: =Transpose(IF($C$2:$C$999=$A4,$A$2:$A$999,""))...)
ただし、空の結果でも列が占有されるため、右側に多くの列が必要です。空の文字列が列を占有しないように処理されたとしても、結果の列が不明であるという問題が残ります。そこで、VBA 関数 (かなり前に書いたもの) を使用して、有効な結果を 1 つのセルに (任意の区切り記号で) 連結することを提案します。
D3で最終的に提案された式: =MyConCat("-";IF($C$2:$C$999=$A2;$A$2:$A$999;"")) +ctrl+shift+enter
および MyConCat のコード (VBA コード領域のモジュールに配置するため):
' MyConCat
'
' Very simple By Apostolos Goulandris
Function MyConCat(myDelimiter As String, Avar) As String
Dim b As Variant, Dum As String
If IsMissing(myDelimiter) Then myDelimiter = ""
For Each b In Avar
Dum = IIf(Len(b) > 0, Dum & myDelimiter & b, Dum)
Next
MyConCat = IIf(Len(myDelimiter) > 0, Mid(Dum, Len(myDelimiter) + 1, Len(Dum)), Dum)
End Function