これはExcelの最も基本的な機能だと思いますが、列の順序を決定できないという人為的な制限を想定しているため、HLOOKUPなどを使用する必要があります(少なくともヘッダー):
=IF(AND(HLOOKUP("Key",$A$1:$C$5,ROW(),FALSE)=10,HLOOKUP("VALUE",$A$1:$C$5,ROW(),FALSE)=20),HLOOKUP("ID",$A$1:$C$5,ROW(),FALSE),"")

幸運を。
編集/追加:
次の multicat 関数を使用します: http://www.mcgimpsey.com/excel/udfs/multicat.html
たとえば、テーブルを並べ替えてスペースを取り除き、次のようにします。
=multicat(C2:C5,",")
または、並べ替えが面倒な場合は、次の修正版の mcgimpsey 関数を使用して、空白のセルを削除できます。
Public Function MultiCat( _
ByRef rRng As Excel.Range, _
Optional ByVal sDelim As String = "") _
As String
Dim rCell As Range
For Each rCell In rRng
If rCell.Value <> "" Then
MultiCat = MultiCat & sDelim & rCell.Text
End If
Next rCell
MultiCat = Mid(MultiCat, Len(sDelim) + 1)
End Function