2016-08-08 18 views
0

vlookupから複数の値を返すことはありますか?シート1のcol Iが複数の値をセルに返すようにしたい、またはこれを表示する別の方法があります(むしろピボットしません)。Vlookup、複数の値をセルに戻す

シート1:コルAがどのコルBに一意の文字列に対応する重複する文字列値を有している:すべての私のユニークな値(COL F、およびコルIの値を返す)、

シート3を有します空白も含めてユニークです。

EDIT

シート1又は所望の結果

enter image description here

シート1:現在

enter image description here

シート3現在:ほとんど0の、空白または一意の値に対応する複数の値による

enter image description here

現在の式

=VLOOKUP(F2,Sheet3!A:B,2,FALSE) 

返します。

+0

あなたは写真を置くことができますか? * Sheet3の列B *と* Sheet1の列F *の中にあなたの説明からうまくいかない。 –

+0

こんにちはTim、これは役に立ちますか? – Jonnyboi

+0

それは私が今あなたが何をしているのか理解するのに役立ちます。私はそれがサイト上の他の場所で行われているのを見たと思うが、どこを覚えていないのだろう。私は 'VLOOKUP'を使ったとは思っていませんが、間違いなく配列式です。 –

答えて

1

VBAの点では、私が送ったリンクのコードを少し変更する必要があります。これはうまくいくはずです:

Option Explicit 
Function vlookupmulti(rngLookup As Variant, rngSource As Range, col As Double) As String 
Dim d As Double, strCell As String 

'Error if range has less columns than col 
If rngSource.Columns.Count < col Then 
    vlookupmulti = CVErr(xlErrNA) 
    Exit Function 
End If 

'Loop through rows in the lookup column 
For d = rngSource.Row To rngSource.Rows.Count 
    If rngLookup = Sheets(rngSource.Parent.Name).Cells(d, rngSource.Column).Value Then 
     strCell = Sheets(rngSource.Parent.Name).Cells(d, rngSource.Column + col - 1).Value 
     If Len(strCell) > 0 Then vlookupmulti = vlookupmulti & strCell & ", " 
    End If 
Next d 

'Remove comma at end 
If Right(vlookupmulti, 2) = ", " Then 
    vlookupmulti = Left(vlookupmulti, Len(vlookupmulti) - 2) 
End If 

'Give error if no results 
If vlookupmulti = "" Then 
    vlookupmulti = CVErr(xlErrNA) 
End If 

End Function 
+0

あなたの返信ありがとうございますTim、シートの数式をフォーマットするにはどうすればいいですか?すなわち 'vlookupmulti =(検索値、___、__)' – Jonnyboi

+0

通常の 'VLOOKUP'と同じですが、最後のTRUE/FALSE引数はありません。 –

+0

それは動作します:)、それは速く走らせるためにとにかくありますか?私のエクセルを凍結しているようだ。 – Jonnyboi

関連する問題