• ベストアンサー

エクセルで、商品名や値段が並んでいる表があります。

エクセルで、商品名や値段が並んでいる表があります。 例えば値段が1000円の商品名だけを一つのセルに表示する計算式を教えてください。 商品名が「、」で区切られたり、「“”」で括れたりできたら、なお良いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • don9don9
  • ベストアンサー率47% (299/624)
回答No.2

仮にA列に商品名、B列に値段が入っていて D2に検索条件となる値段を入力する、とします。 作業列を1列使います(C列)。 C2に以下の式を入力します。 =IF($D$2="","",IF($D$2=B2,""""&A2&"""","")) その一つ下のC3には以下の式を入力します。 =IF($D$2="","",IF($D$2=B3,C2&IF(C2<>"",",","")&""""&A3&"""",C2)) このC3の式を、C列の最終行までコピー&ペーストします。 D2は絶対参照なので$を付け忘れないように注意して下さい。 最後に検索結果を表示したいセルには以下の式を入力します。 =INDEX(C:C,COUNTA(A:A)) C列は非表示にしておけばいいです。

sashimitenpura
質問者

お礼

ありがとうございます。 助かりました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例です。 Sheetが↓の画像のような配置になっているとしての方法です。 B列の値段を検索して、インプットボックスに入力した値段の商品名を D2セルに表示させるようにしてみました。 VBAになってしまいますので、 Sheet見出し上で右クリック → コードの表示 を選択し、 ↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub test() Dim i, j As Long Dim buf, str As String j = InputBox("検索する商品の値段(数値のみ)を入力してください。 ") For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(i, 2) = j Then str = Cells(i, 2).Offset(, -1) buf = buf & "、" & str End If Next i Cells(2, 4) = WorksheetFunction.Replace(buf, 1, 1, "") End Sub 以上、参考になればよいのですが 他に良い方法があれば読み流してくださいね。m(__)m

すると、全ての回答が全文表示されます。

関連するQ&A