• ベストアンサー

Excelで複数の結果を一つのセルに表示させる方法

データ    A B C D E F G ・・・  イ * *   *  ロ   *  ハ  *    * から、行ごとに集計して、「*」のあるアルファベットを一つのセルに表示させるということをしたいのですが、良い方法が見つかりません。 例えば、イの行であれば[A B D]、ハの行であれば「B E」という感じです。 「LOOKUP関数」だと、最初にHITしたものしか返ってきません。 一つではなく、複数欲しいのです。 Excelに不慣れな者ですが、複雑な式であっても何とか頑張りたいと思います。 どなたかご教示お願いします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

例えばB1セルにA,C1セルにB,D1セルにC・・・とH1セルまで入力されているとしてJ2セル方下方にお求めの表示をさせるとしたらJ2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B2<>"",B$1,"")&IF(C2<>"",C$1,"")&IF(D2<>"",D$1,"")&IF(E2<>"",E$1,"")&IF(F2<>"",F$1,"")&IF(G2<>"",G$1,"")&IF(H2<>"",H$1,"") 列がもっと多くなってもも同様の式を追加すればよいだけです。

k3104i
質問者

お礼

ありがとうございます! できました!!! というか、なるほどです。勉強になります(*^_^*)

その他の回答 (3)

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

こんばんは! VBAでの一例です。 Sheet1にあるデータをSheet2のA列に表示するようにしてみました。 Sheet1の1行目に表示したいデータが、アスタリクス「*」はB列以降に入っているとします。 画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面になりますので、 ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, j As Long Dim str As String Dim ws1, ws2 As Worksheet Set ws1 = Worksheets("sheet1") Set ws2 = Worksheets("sheet2") For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row For j = 2 To ws1.Cells(i, Columns.Count).End(xlToLeft).Column If ws1.Cells(i, j) = "*" Then str = str & ws1.Cells(1, j) End If Next j ws2.Cells(i, 1) = str str = "" Next i End Sub 'この行まで 他に良い方法があればごめんなさいね。m(_ _)m

k3104i
質問者

お礼

ご回答ありがとうございます。 マクロって扱ったことがなく、敷居が高いというか、キャーという感じです。 でも、時間をかけてチャレンジしてみようと思います。 ありがとうございました(*^_^*)

noname#204879
noname#204879
回答No.2

添付図参照 1.セル L2 に式 =IF(B2="*",B$1,"") を入力して、此れを右へ(セル Q2 まで)ズズーッとドラッグ&ペースト 2.セル J2 に式 =L2&M2&N2&O2&P2&Q2 を入力 3.範囲 J2:Q2 を下方にズズーッとドラッグ&ペースト

k3104i
質問者

お礼

ありがとうございます! できました! でも、実は列が150列くらいあるんです・・・。 しかーし、皆さんの回答のおかげでヒントというか、選択肢が増えたというか、トンネルから抜け出れそうです。 「*」をこの際、「A」「B」「C」・・・で表記すれば、話は早いですよね。 ありがとうございました(*^_^*)

  • ami0607
  • ベストアンサー率41% (5/12)
回答No.1

これは*を変換したらダメなんですか? *のままじゃないといけないんでしょうか? もし変えていいなら簡単にできる方法はありますが、、あと、列は長いのでしょうか?(Gまでですか?)

k3104i
質問者

お礼

出口が見えてきました!!! 「*」を変換すればいいんですよね!!! ありがとうございました(*^_^*)

k3104i
質問者

補足

ありがとうございます! 「*」の変換はO.K.です。 列は 150列 ほどあります。

関連するQ&A