• ベストアンサー

エクセルで、入力された文字を検索して表示

よろしくお願いします。 例えば、 「B1~H1 セルのどれかに任意の文字を入力すると、A1セルに同じ文字を表示する」 というようなことをエクセル関数を使って実現可能でしょうか。 VBマクロは使えないものとします。

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

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

こんにちは! 一例です。 B1~H1セルに入力するのは一つだけのセルだとしての方法です。 配列数式になってしまいますので、この画面から↓の数式をA1セルに コピー&ペーストしただけではエラーになると思いますので、 貼り付け後、F2キーを押すか、数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrl+Enterキーで確定してください。 数式の前後に{ }マークが入り配列数式になります。 A1セルは =IF(COUNTA(B1:H1)=0,"",INDEX(B1:H1,,SMALL(IF(B1:H1<>"",COLUMN(A:G)),1))) としてShift+Ctrl+Enterキーです。 万一複数セルに入力があった場合は、一番左側のセルを返します。 以上、参考になれば幸いですが、 他に良い方法があれば読み流してくださいね。m(__)m

catecholamine
質問者

お礼

早速の回答ありがとうございます。 おお!すごいですね。ちゃんとできました。 配列数式というのを初めて知りました。これを機会に勉強したいと思います。

その他の回答 (3)

  • mame9999
  • ベストアンサー率44% (90/203)
回答No.4

半分しか回答できなかったので 続きを 文字が入っている場合ですが この場合 A1に B1 & C1 & D1 & E1 & F1 & G1 & H1 とすれば可能かと想います

catecholamine
質問者

お礼

重ねてのご回答ありがとうございます。 簡単で分かりやすい方法ですね。 ただ、B1:H1という列範囲は実際にはかなり広い範囲になります。 また範囲を可変にしたいので、他の方のやり方を採用したいと思います。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

一例です。 前提ですが、B1:H1範囲で複数入力はしない事とします。 =IF(COUNTIF(B1:H1,"<>")=1,OFFSET($A$1,,SUMPRODUCT((B1:H1<>"")*COLUMN(A1:G1))),"")

catecholamine
質問者

お礼

ご回答ありがとうございます。 なるほど方法は色々あるものですね。 すみません質問内容があいまいでした。複数入力はあります。ただそのうち最初に見つかったものが表示されればOKです。

  • mame9999
  • ベストアンサー率44% (90/203)
回答No.2

どれか一つにしか入らない なおかつ半角数字だけであれば A1にB1+C1+D1+E1+F1+H1 でいいのでは?

catecholamine
質問者

お礼

ご回答ありがとうございます。 お礼が遅くなりましたことをお詫びします。

関連するQ&A