
おせわになっております。
excelで質問です。
excel関数でもVBAでもいいのですが、1つのセルに複数の値を返す方法はありますでしょうか??
たとえばVLOOKUP関数だと1つのセルに1つしか返せませんよね??
a=りんご b=バナナ c=すいか d=いちご e=キウイ
と設定したしたとして、
a,c,dと入力すると→りんご,すいか,いちご
とすべて1つのセルに出るようにしたいのです。りんご,すいか,いちごという値にしたいので、それぞれを別々のセルに入れることはしたくありません。可能でしょうか?? よろしくお願いいたします。
No.5ベストアンサー
- 回答日時:
#3です。
ご期待にそえたようでうれしく思います。>jlookupのjに何か意味はあるのでしょうか??
深い意味はありません。
てきとーに考えてJoin(結合)のJをつけただけです。
自由に変更して構いませんが、その場合、
下から2行目の
jlookup = Join(myAry, ",")
の左辺もあわせて変更する必要があります。
----------------------------------------
>コンマの代わりににスペースで区切る場合はどのようになりますでしょうか??
#3のコードについて、
myAry = Split(myStr, ",")
↓
myAry = Split(myStr, " ")
とすれば、検索値が半角スペースで区切られているものとして動作します。
jlookup = Join(myAry, ",")
↓
jlookup = Join(myAry, " ")
とすれば、戻り値を半角スペースで区切って返します。
----------------------------------------
なお、引数を増やして区切文字をその都度自由に選べるようにすることもできます。
●拡張VLOOKUP(検索値,範囲,列番号,検索の型,区切文字(検索値),区切文字(戻値))
区切文字の指定を省略した場合は、","を区切文字として動作する仕様です。
'-------------↓ ココカラ ↓-------------
Function 拡張VLOOKUP( _
ByVal myStr As String, _
ByVal myRng As Variant, _
ByVal myCol As Long, _
ByVal myOpt As Boolean, _
Optional ByVal kyDiv As String = ",", _
Optional ByVal rtDiv As String = "," _
) As Variant
Dim myAry As Variant
Dim i As Long
myAry = Split(myStr, kyDiv)
For i = 0 To UBound(myAry)
myAry(i) = WorksheetFunction. _
VLookup(myAry(i), myRng, myCol, myOpt)
Next i
拡張VLOOKUP = Join(myAry, rtDiv)
End Function
'-------------↑ ココマデ ↑-------------
ご参考まで。

本当にありがとうございます!!
2つの式を見比べてみると仕組みがちょっとだけわかりましたが、自分では変更不可能でした^^; もっと勉強します。
今後この式はJLOOKUPで使わせていただきます♪
本当に助かりました、ありがとうございます。
また宜しくお願い致します m(_ _)m
No.3
- 回答日時:
検索する個数が不定の場合は、組込み関数だけでやるのは困難ですね。
VBAでもよいということなので、
とりあえずユーザー定義関数を書いて見ました。
JLOOKUP(検索値,範囲,列番号,検索の型)
検索値は、キーとする値をカンマで区切って結合した文字列。
戻り値は、それぞれのキーについてVLOOKUPした結果をカンマで区切って結合した文字列になります。
'-------------↓ ココカラ ↓-------------
Function jlookup( _
ByVal myStr As String, _
ByVal myRng As Variant, _
ByVal myCol As Long, _
ByVal myOpt As Boolean _
) As Variant
Dim myAry As Variant
Dim i As Long
myAry = Split(myStr, ",")
For i = 0 To UBound(myAry)
myAry(i) = WorksheetFunction. _
VLookup(myAry(i), myRng, myCol, myOpt)
Next i
jlookup = Join(myAry, ",")
End Function
'-------------↑ ココマデ ↑-------------
ご参考まで。

す、すごいです!!! これがしたかったんです。
ありがとうございます!!
ところで、jlookupのjに何か意味はあるのでしょうか??
また、コンマの代わりににスペースで区切る場合はどのようになりますでしょうか?? たびたびすみません、よろしくお願いいたします。
No.1
- 回答日時:
別々のセルにa,b,dと入れて一つのセルに「りんご,すいか,いちご」と返すなら可能だと思います。
しかし、一つのセルにカンマ区切りで複数入れた物をとなると難しいかも知れません。まあ、入力がアルファベット1桁と決まっているなら、カンマで区切らないでmid関数とかで分解してVlookup関数で引いてきて文字列を結合させる等の方法はあると思いますけど。一発の式でやると大変なのでワークエリアを作ってmid関数で入力値を分解、それぞれの値をVlookup関数で引いてくる、&などを使って結合して表示とするとできると思いますけど。また、この場合入力する値の個数をある程度考えておかないとうまく使えなくなる可能性が有りますが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 重複したデータ(空白は除く)のVBA表記について 4 2022/08/15 07:28
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Excel(エクセル) Excelで全クラスのランキング表を作成したい 4 2022/05/24 15:28
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- 日本語 読解力の質問です(Excel含む) 12 2022/08/02 13:25
- Excel(エクセル) Excelで、行に複数の数字が入力されているセルが複数の列存在し、行を跨いでセル内の数値を並び替える 5 2022/06/17 18:03
- Excel(エクセル) エクセルで指定範囲にある名前と重複した場合に入力できないようにしたい 1 2023/07/13 09:58
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでセル参照したとき、書式...
-
勤続年数の平均を求めたい時の関数
-
エクセルの色も=イコールでき...
-
表のセル内の右側に余白?
-
EXCEL でセルの結合した際、行...
-
エクセルシートの余白に文字を...
-
エクセルのセルの数値10000→1に...
-
エクセルの行をずらす方法
-
【エクセル2002】 週番号から...
-
WORDの表を一部削除したい
-
Excelで表作成
-
エクセルで文字色がついている...
-
エクセルでのマイナス計算がう...
-
excel セルとセルの間へ数字を...
-
エクセルで選んだセルの枠に自...
-
エクセルでテキストボックスに...
-
エクセルのもとからある罫線を...
-
excelで1つのセルに複数の値を...
-
エクセル・縦書き・取り消し線
-
セルの書式設定 ユーザー定義...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでセル参照したとき、書式...
-
勤続年数の平均を求めたい時の関数
-
エクセルの色も=イコールでき...
-
表のセル内の右側に余白?
-
エクセルでのマイナス計算がう...
-
EXCEL でセルの結合した際、行...
-
エクセルシートの余白に文字を...
-
エクセルで文字色がついている...
-
【エクセル2002】 週番号から...
-
納期と納入日から遅延日数の計算式
-
エクセル・縦書き・取り消し線
-
WORDの表を一部削除したい
-
計算式が入っているセルに文字...
-
excel セルとセルの間へ数字を...
-
家賃の日割り計算をEXCEL...
-
エクセルのセルの数値10000→1に...
-
エクセルのセルで箇条書き
-
エクセルの行をずらす方法
-
【Excel】セル結合すると、ドロ...
-
エクセルのセル中のURLへクリッ...
おすすめ情報