- 締切済み
【至急】エクセルで入力規制でリスト入力すると、他の
マクロの初心者なもので、どうしてもわからないので教えて下さい。 セルA1 に 段階1 段階2 段階3 段階4 ・・・とリストで入力したとします。 セルA1 に 「段階1」 と選んだら、 セルB1には 「500」 同時にセルC1には 「400」 「段階2」 と選んだら、 セルB1には 「800」 同時にセルC1には 「600」 以下 どの段階を選んでも段階に合わせた数値が他のセルに返せる方法が知りたいです。 という風にしたいのですが、関数orマクロで何か解決方法があれば教えてほしいです。 excelは2007 OSはvista よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えば段階名やその数値などをデータベースとしてシート2に作成します。 A1セルは空白のセルとしてB1セルから横に段階1、段階2、段階3・・・・と入力します。 A1を空白にするのはリスト表示にした時に必ず段階1が選択しやすいように最初の画面で表示されるようにするためです。そうでないとリストの最初の画面で空白のみが表示されるようなことも起こります。 2行目のB2セルから横にそれぞれの段階に対応したシート1のB列に表示したい数値を、3行目ではB3セルから横にそれぞれの段階に対応したシート1のC列に表示したい数値を入力します。 そこでシート1ですが例えばA1セルからA10セルを選択してから「データの入力規則」で「リスト」を選んで元の値の窓には次の式を入力してOKします。 =Sheet2!$1:$1 B1セルには次の式を入力してC1セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF($A1="","",HLOOKUP($A1,Sheet2!$1:$3,COLUMN(B1),FALSE))
- mitarashi
- ベストアンサー率59% (574/965)
- maiko0318
- ベストアンサー率21% (1483/6969)
>さらに;が反応せず、式が間違っている事になってしまいます。。。 すいません、excelは;ではなく, ですね。
- maiko0318
- ベストアンサー率21% (1483/6969)
=IF(A1="段階1";500;IF(A1="段階2";800;"")) ですね。あとは段階の数だけIFをつなげることになります。
- maiko0318
- ベストアンサー率21% (1483/6969)
B1=IF(A1="段階1";500;"") C2=IF(A1="段階1";400;"")
お礼
早速ありがとうございます。 このIFを使うまではわかるのですが。 A1セルに「入力規制のリスト」をつかっている場合に、 A1セルにリストで「段階1」を選んだ時にはB1C1に段階1の設定した数値を A1セルにリストで「段階2」を選んだ時にはB1C1に段階2で設定した数値を・・・ という風にしたいのです。。
お礼
何度かこの式を重ねると、関数が多すぎますとなってしまいます。。。 さらに;が反応せず、式が間違っている事になってしまいます。。。 どうしたらいいでしょう??