- ベストアンサー
エクセルで、入力された文字を検索して表示
よろしくお願いします。 例えば、 「B1~H1 セルのどれかに任意の文字を入力すると、A1セルに同じ文字を表示する」 というようなことをエクセル関数を使って実現可能でしょうか。 VBマクロは使えないものとします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! 一例です。 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
その他の回答 (3)
- mame9999
- ベストアンサー率44% (90/203)
半分しか回答できなかったので 続きを 文字が入っている場合ですが この場合 A1に B1 & C1 & D1 & E1 & F1 & G1 & H1 とすれば可能かと想います
お礼
重ねてのご回答ありがとうございます。 簡単で分かりやすい方法ですね。 ただ、B1:H1という列範囲は実際にはかなり広い範囲になります。 また範囲を可変にしたいので、他の方のやり方を採用したいと思います。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 前提ですが、B1:H1範囲で複数入力はしない事とします。 =IF(COUNTIF(B1:H1,"<>")=1,OFFSET($A$1,,SUMPRODUCT((B1:H1<>"")*COLUMN(A1:G1))),"")
お礼
ご回答ありがとうございます。 なるほど方法は色々あるものですね。 すみません質問内容があいまいでした。複数入力はあります。ただそのうち最初に見つかったものが表示されればOKです。
- mame9999
- ベストアンサー率44% (90/203)
どれか一つにしか入らない なおかつ半角数字だけであれば A1にB1+C1+D1+E1+F1+H1 でいいのでは?
お礼
ご回答ありがとうございます。 お礼が遅くなりましたことをお詫びします。
お礼
早速の回答ありがとうございます。 おお!すごいですね。ちゃんとできました。 配列数式というのを初めて知りました。これを機会に勉強したいと思います。