こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

セルに入力したら、別の特定セルに文字表示させるには

似たようなQ&Aはあったのですが、求めているものとは少し違うので質問させていただきます。

エクセルで、指定したセルに数値を入力したら、
別シートの特定セルに特定文字列を表示させる ということはできませんか。


例えば、sheet1のセルB3に「2」と入力したら
sheet2のセルB5に「●」と表示

次に、sheet1のセルB4に「6」と入力したら
sheet2のセルD11に「●」と表示

次に、sheet1のセルC3に「4」と入力したら
sheet2のB9に「○」と表示           のようなかたちです。

sheet1の入力範囲は、B3:I85程度
sheet2の入力範囲は、B3:FZ170程度で、特定セルは重複しない
表示されるのは、「●」「○」などの文字列 です。


途中経過として、MATCH関数、ADDRESS関数を利用して
sheet1のセルに数値入力をしたら
sheet2の入力すべきセル番地を求めることまではできたのですが
その求めたセルがすべて異なるので、それぞれのセルに移動させて
文字列を表示させることができずに困っています。

解決法をご存知の方、どうぞよろしくお願いいたします。

投稿日時 - 2011-08-14 13:33:09

QNo.6942181

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

> 詳細は、No.2さんのところに記述しましたが

いまひとつ動作が具体的に頭に浮かんでこないのですが
とりあえず

Sheet1のどこかのセルに入力した値を元にどこかのセルにSheet2の対象アドレス(○を入力すべきセル番地)を表示させることができた(対象アドレスをセルαとしましょう)

のでしたら

先に示した

Sub kakikomi()
Sheet2.Range((Sheet1.Range("Z1").Value))="○"
End sub


のZ1のところをセルαの番地に書き換えてマクロを実行してみてください。


ALT+F11でVBEが起動しますので左の窓にあるSheet1をダブルクリックして右に出た窓に
上記の
SubからEnd Subまでをコピペしてマクロの実行で実行してみてください。

投稿日時 - 2011-08-15 18:58:45

お礼

回答ありがとうございます。


> Sub kakikomi()
> Sheet2.Range((Sheet1.Range("Z1").Value))="○"
> End sub
>
> のZ1のところをセルαの番地に書き換えてマクロを実行してみてください。


マクロはあまり詳しくないのですが、Z1という対象セルは1つしかだめですよね?

例えば、"○"と表示させたいセルが6~70ある場合は、マクロを複数(対象セルの数だけ)書かなければなりませんか。

投稿日時 - 2011-08-16 00:00:46

ANo.4

>そのために、入力シートでは、それぞれのIDが選択した数値を入力
別シートでは、横に100番台、縦に200番台を配置した碁盤の目のようなシートを作成し、それぞれの該当セルに文字列「●」や「○」を表示させようと考えました。

>そこで、選択した数値から、該当セルを導き出すことまでは関数を用いてできたのですが、その後、その該当セルを選んで、そこに文字列を表示させる方法がわからず、困っておりました。

選択した数値と、該当セル位置の関係がわかれば基本的には関数で表示できます。

例えばSheet1のA1:A4セルに「○」を表示したいセル番地(たとえばB3やC5など)が入力されている場合、Sheet2の該当セルに以下の数式を入力すれば該当セルに「○」を表示することができます。

=IF(COUNTIF(Sheet1!$A$1:$A$4,ADDRESS(ROW(),COLUMN(),4)),"○","")

この場合、当然のことですが、「●」や「○」の区別の条件や、選択した数値の入力セルが一定の範囲に固定されている必要があります。

#補足説明を読んでも、まだ質問内容が把握できません(例えば数値が2ならどうしてB5セルに表示するのか)。
具体的な回答を期待するなら、セル番地や数値データなど実際のデータに即した例で説明するようにしてください。

投稿日時 - 2011-08-15 00:57:33

お礼

何度も回答をありがとうございます。

> 選択した数値と、該当セル位置の関係がわかれば基本的には関数で表示できます。

> この場合、当然のことですが、「●」や「○」の区別の条件や、選択した数値の入力セルが一定の範囲に固定されている必要があります。

上記の回答を元に多少修正をしたところ、希望するものを表示させることができました。

一定の範囲に固定して表示されていれば、COUNTIFを使えば表示することができたんですね。そんなことにも気づきもしなかったです。難しく考えすぎていたようです。

分かりにくい説明だったのに、ご理解&ご回答いただき、
本当にありがとうございました。
おかげで考えていたものを作成することができ、助かりました。

> #補足説明を読んでも、まだ質問内容が把握できません(例えば数値が2ならどうしてB5セルに表示するのか)。

101番が数値2を選択したらセルB5に入力、102番が数値2を選択したらセルD5に入力、同様に規則性をもたせるようにしたため具体的な数値で間違いはないのですが、作成シートを見ながらの詳細説明でなければ、やはりわかりづらかったと思います。

そんななかでご回答いただきまして、本当にありがとうございました。

投稿日時 - 2011-08-15 20:56:48

ANo.3

> 途中経過として、MATCH関数、ADDRESS関数を利用して
> sheet1のセルに数値入力をしたら
> sheet2の入力すべきセル番地を求めることまではできたのですが
> その求めたセルがすべて異なるので、それぞれのセルに移動させて
> 文字列を表示させることができずに困っています。

関数で値を表示させようとした場合、表示させたいセルにその関数を記載します。

この文章の感じからすると、入力したセルの値を元にどこかのセルにSheet2の対象アドレスを表示させることができたので、そのアドレスに○等を入力したいという感じに取れるのですが、そういう意味でしょうか。それだとマクロを利用する方法になると思われます。

たとえば、対象アドレスを表示させているセルがZ1だとしたら

Sub kakikomi()
Sheet2.Range((Sheet1.Range("Z1").Value))="○"
End sub

みたいなマクロです。


が、○等を表示したいセルと数値を入力するセルや数値になんらかの規則性があればSheet2の各セルに規則性を盛り込んだ式を書き込んでやることで解決することもあるでしょう。

ただし、質問の例では規則性はないようですね。

投稿日時 - 2011-08-14 16:00:25

補足

回答ありがとうございます。

> この文章の感じからすると、入力したセルの値を元にどこかのセルに
> Sheet2の対象アドレスを表示させることができたので、そのアドレスに○
> 等を入力したいという感じに取れるのですが、そういう意味でしょうか。

はい。まさにその通りです。

詳細は、No.2さんのところに記述しましたが
どんな数値が入るのか規則性は全くなく
従いましてsheet2の対象アドレスにも規則性はなく
また全てバラバラとなってしまいます。

関数では無理で、あるとすればマクロしかないのかな
と思っていましたが
やはりマクロでも規則性がなければ、無理なのでしょうか。

投稿日時 - 2011-08-14 22:11:01

ANo.2

質問の意味がよくわかりません。

>例えば、sheet1のセルB3に「2」と入力したらsheet2のセルB5に「●」と表示

この部分を実行するなら、単純にsheet2のB5セルに以下の式を入力することになると思うのですが・・・

=IF(Sheet1!B3=2,"●","")

もし上記の回答がご希望の回答でない場合は、具体的にどの部分が不都合なのか、あるいはそのような設定をしたい目的を具体的にわかりやすく例示して説明して下さい。

投稿日時 - 2011-08-14 14:44:28

お礼

回答ありがとうございます。

そうですね。全体像の一部分のみについて質問しているので、よけいに解りにくくなるのですよね。

少し複雑なものを作成しておりまして、101~180番と201~280番ぐらいのIDのそれぞれが、100番台は、200番台から好きな数値を2つ選択でき、同様に200番台は、100番台から同様に2つの数値を選択します。
それぞれ好きな番号なので、特に法則性はありません。

その、それぞれお互いに選択した番号がマッチしているペアを探し出す、というのが、もともとの目的です。

そのために、入力シートでは、それぞれのIDが選択した数値を入力
別シートでは、横に100番台、縦に200番台を配置した碁盤の目のようなシートを作成し、それぞれの該当セルに文字列「●」や「○」を表示させようと考えました。

そこで、選択した数値から、該当セルを導き出すことまでは
関数を用いてできたのですが、その後、その該当セルを選んで、そこに文字列を表示させる方法がわからず、困っておりました。

No.3さんがお答えのように、関数等では無理なのでは?
マクロを組んだとしても解決できるのか?不明でしたので、質問させていただきました。

私の考えた方法ではなく、もっと何かいい案、考え方がありましたら、お願いいたします。

投稿日時 - 2011-08-14 21:58:25

ANo.1

後半の部分は何だかよくわからないので最初だけですが・・・。

>>例えば、sheet1のセルB3に「2」と入力したら
sheet2のセルB5に「●」と表示<<

sheet2のセルB5に
=IF( Sheet1!B3=2,"●","")

投稿日時 - 2011-08-14 14:43:34

お礼

回答ありがとうございます。

単純に「●」表示のみであれば、IF関数等を使用すればいいのですが
そうではなくて、sheet2の指定セルはすべてバラバラ
特に決まった法則はありません。

そのような方法が何かないだろうかと思い質問したのですが、
説明不足で申し訳ありませんでした。

投稿日時 - 2011-08-14 21:31:40

あなたにオススメの質問