• ベストアンサー

Excelで定数の使い方を教えてください

例えば「A1」と「A2」のセルを掛けて「A3」に結果を表示させるとした場合、「A1」には数字を入力しますが、その数字ではなく別の決まった数字を代入(?)したいのですが、どうすれば出来るのでしょうか? 100と入れたら「0.25」を1000と入れたら「0.75」をというように・・・。因みに入力する数字は24個しかありません。 また、その24個以外の数字以外が入力された場合、エラー表示とさせる事は出来ますか? ヘルプを見ても解説書を見ても分かりませんでした。もし宜しければお願い致します。

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

  • ベストアンサー
回答No.2

別に1枚シートを使います。そのシートを選択して… A1からA11に「A1」に使いたい100~3000の値を入力します(24種類でも同様に出来ます)。小さい順にして下さい。 B1からB11にそれぞれ対応する0.25,0.75等の値を入力します。 A1からA11を選択し、Ctrlを押しながらF3を押します。名前欄に「選択肢1」と入力しEnter。 A1からB11を選択、Ctrlを押しながらF3を押し、名前欄に「対応表1」と入力しEnter。 C列・D列には「A2」に使いたい値と対応値を入力し、同様に「選択肢2」・「対応表2」の名前をつけます。 これで準備終了。実際に使いたいシートを選択して下さい。 A1を選択してツールバーのデータ→入力規則→設定タブの「入力値の種類」でリストを選択。「元の値」にカーソルを当て「選択肢1」と入力。 エラーメッセージタブを選びスタイルが停止になっていなかったら停止に直しOK。 A2にも同様に入力規則(今度は「元の値」は「選択肢2」)を設定。 A3に =VLOOKUP(A1,対応表1,2)*VLOOKUP(A2,対応表2,2) と入力。 以上でプルダウンメニューとエラーメッセージ(プルダウンを使わずにリスト外の値を入力しようとした場合)に対応出来ています。

toshi777
質問者

補足

詳しくて分かりやすい解説有難うございます。 早速試してみましたが、プルダウンをクリックしても「選択肢1」としか出てこなくて100~3000の数字が選択できないのです。何がいけないのでしょうか? 解説の通りに順番にやってみましたが、どうしても出来なくて困っています。 お手数ですがご教授下さいますようお願い致します。 それから後の参考までに「=VLOOKUP(A1,対応表1,2)*VLOOKUP(A2,対応表2,2) 」の意味も教えていただけると有りがたいです。具体的には式の中の”対応表1,”の後の「2」はどういった意味なのでしょうか?全くの初歩的な質問で申し訳ありませんが合わせてお願い致します。

すると、全ての回答が全文表示されます。

その他の回答 (6)

  • comv
  • ベストアンサー率52% (322/612)
回答No.7

今見たら「,」一箇所抜かしてました・・・! 失礼しました! =IF(COUNTA(C12,E12,F12)<3,"",VLOOKUP(C12,対応表1,2,0)*(VLOOKUP(E12,対応表2,2,0)-VLOOKUP(F12,対応表3,2,0))

すると、全ての回答が全文表示されます。
  • comv
  • ベストアンサー率52% (322/612)
回答No.6

みなさん こんにちは! >ところで、「A2」に日本語を入力したのですが ありゃ・・・項目は数値じゃないのですか(^^; 文字列が検索ちであれば入力のチェックは COUNT() → COUNTA() >選択肢の下を選ぶと「#N/A」と 想像ですが、VLOOKUP()の数式で、検索型を指定せずに 検索値に数値の昇順でないものを使ったためです。 VLOOKUP(A1,対応表1,2) → VLOOKUP(A1,対応表1,2,0) のように最後に「,0」と完全一致を指定して下さい。 結果、以下のようになります。 > =VLOOKUP(C12,対応表1,2)*(VLOOKUP(E12,対応表2,2)-VLOOKUP(F12,対応表3,2)) 以上で上記の式も対応可能です。 ↓  =IF(COUNTA(C12,E12,F12)<3,""VLOOKUP(C12,対応表1,2,0)*(VLOOKUP(E12,対応表2,2,0)-VLOOKUP(F12,対応表3,2,0)) 上記の式をコピーして数式バーに貼り付けてみて下さい。

toshi777
質問者

お礼

お世話様でした。 やっと2日前に完成致しました。 思っていた以上のものが出来あがり大変満足しています。 これも皆さんのアドバイスのおかげです。 本当に有難うございました。 >ありゃ・・・項目は数値じゃないのですか(^^; すいませんでした。作っているうちに文字の方がスッキリ作れるのがわかったので同じようにしてみたら出来るかななんて思ったものですから・・・。

すると、全ての回答が全文表示されます。
回答No.5

comvさん、ありがとうございます。toshi777さん、ごめんなさい。 入力規則の元の値に「=」を付けなかったのは確かに間違いでした。 尚、元の値欄でF3を押すことで定義された名前を選択することも出来ます。

toshi777
質問者

お礼

HitomiKuroseさん、有難うございました。 お蔭様で2日前に完成致しました。 予想以上の出来で大変満足しています。 丁寧で分かりやすい回答、本当に有難うございました。

toshi777
質問者

補足

いえいえ、気づかない私のミスです。 F3を押しても出来るんですね。 有難うございました。 でもcomvさんのレスでも書きましたが、選択肢の下を選ぶと「#N/A」と返ってきて意味もわからず困ってしまいました。 ヘルプを読んだのですが、何の事か理解に困っています。 もしお時間があればアドバイスをお願い致します。

すると、全ての回答が全文表示されます。
  • comv
  • ベストアンサー率52% (322/612)
回答No.4

みなさん こんばんは! sdaruさんとHitomiKuroseさんのレスを合わせたような回答ですが! まず名前の定義はちゃんとできているとの前提で! (HitomiKuroseさんが使った名前をお借りします) それぞれの、入力規則 リスト 元の値の欄に  セルA1の場合 =選択肢1 <・・・イコールを付ける  セルA2の場合 =選択肢2 <・・・イコールを付ける 次にA3の計算式ですが、基本はHitomiKuroseさんのもの でOKですが、シートを保護しないのであれば、コピペや 置換で入力規則以外のものを入れることができてしまう ためその時にエラーを出すものを付加した方がよいので  =IF(COUNT(A1:A2)<2,"",IF(ISERROR(MATCH(A1,選択肢1,0))+ISERROR(MATCH(A2,選択肢2,0)),"エラー",VLOOKUP(A1,対応表1,2,0)*VLOOKUP(A2,対応表2,2,0))) (これはsdaruさんのレスに記載されていた部分ですね^^) または 処理ルーチンは多いが、数式は多少簡単なもの =IF(COUNT(A1:A2)<2,"",IF(COUNTIF(選択肢1,A1)+COUNTIF(選択肢2,A2)=2,VLOOKUP(A1,対応表1,2,0)*VLOOKUP(A2,対応表2,2,0),"エラー")) シートを保護するのであれば! =IF(COUNT(A1:A2)<2,"",VLOOKUP(A1,対応表1,2,0)*VLOOKUP(A2,対応表2,2,0)) でOKだと思います! >”対応表1,”の後の「2」はどういった意味なのでしょうか? 指定範囲の1列目で検索してヒットした行の「2列目」の 値を返すって意味です。 今回の場合 A1が100 の時 対応表1の1列目の100が 記載されている行の隣(2列目)の0.25が値となります。 まずは、ヘルプを見ることを習慣にするよう、お勧めします! 事例も含めて結構詳しく書かれていますから! アシスタント(カイルくん^^;)の検索欄で VLOOKUP 関数 と入力して検索で出てきます!

toshi777
質問者

お礼

すいません。お礼の欄を使ってしまいましたが、補足の補足です。 「6泊7日」「13泊14日」が出来ないのではなく、「13泊14日」と「1ヶ月以内」が「#N/A」で計算結果が返ってくるのです。 訂正でした・・・。

toshi777
質問者

補足

丁寧な補足有難うございました。 早速「=」を入れてみたら出来ました!!本当に有難うございます。 >まずは、ヘルプを見ることを習慣にするよう、お勧めします! 事例も含めて結構詳しく書かれていますから! そうですよね。私もヘルプを見る癖はつけているのですが、私にとっては難解な言葉で書かれているため殆ど理解できないのです・・・・。情けない話ですが。 もう少し解説書なりを購入して勉強したいと思います。 ところで、「A2」に日本語を入力したのですが、うまく行く所と、そうでないところがあるんです。 具体的には「3泊4日」「6泊7日」「13泊14日」「1ヶ月以内」を選択できる様にして、それぞれ返す値は25・30・40・65なのですが「6泊7日」「13泊14日」を選択すると「#N/A」が出てきてしまうのです。ヘルプを見ましたがチンプンカンプンです。 お手隙の時で結構ですので教えていただければ有りがたいです。 あと計算式で「A2」から最初に数値を引くことは可能ですか? 具体的には仮に「B1」を引くとします。 選択肢は「免責無し」「免責1000円」で返す値はそれぞれ0・0.25です。 これもやってみたら「免責1000円」だけが「#N/A」で返ってきてしまいました。 式はHitomiKuroseさんに作っていただいたものを使用しています。=VLOOKUP(C12,対応表1,2)*(VLOOKUP(E12,対応表2,2)-VLOOKUP(F12,対応表3,2))と言う式ですが、何処がおかしいのでしょうか? それでは宜しくお願い致します。

すると、全ての回答が全文表示されます。
  • sdaru
  • ベストアンサー率22% (94/409)
回答No.3

先に回答したsdaruです。 簡単に返事しましたがやって見ましたが結構難しいです。 どなたか先に回答がありましたら参考にして下さい。 私が間に合えばいずれ回答します。

toshi777
質問者

お礼

真っ先に回答していただき本当に有難うございました。 やっと完成致しました。 また何かありましたら宜しくお願い致します。

すると、全ての回答が全文表示されます。
  • sdaru
  • ベストアンサー率22% (94/409)
回答No.1

質問の意味が良く分からない部分があります。 100の場合は0.25に、1000の時には0.75に固定するのか 24個の数字はどのような数字なのか? A1*A2の結果をA3に表示するときどのセルを固定するのか? でもお尋ねの方法は可能です。 エクセルの関数を使えば幾通りかの方法が有ります。 エクセルの表示画面を(レイアウト)どのようにするかは貴方の考えに より変わってきます。 例えば24個の数字を常に画面に表示して置くとか、固定した数字を入れたセルの 表示に保護を掛けて他の数字や文字の入力をさせないとか IF,LOOKUP、MUCHのような関数を使うとか等々。 エクセルには関数を使えば色々有りますが。 関数の使い方の参考書は色々有ります。私はエクスメディア社の超図解 エクセル関数変を参考にして勉強しています。

toshi777
質問者

補足

早速の回答有難うございます。 24個の数字はそれぞれ100・200・250・300・500・750・1000・1500・2000・2500・3000で、ほんとはもう少し(あと13個)足したいのですが別の方法でそれは対処できます。 ほんとはプルダウンで11個の数字を選択できればいいのですが難度が高そうなので下に選択できるようにそれぞれの数字を表示しておきます。 >100の場合は0.25に、1000の時には0.75に固定するのか 完全に固定です。別の値は使いません。 >A1*A2の結果をA3に表示するときどのセルを固定するのか? どのセルも固定しません。A1もA2も数字を入力します。(A2もA1と同様に入力した数字とは別の値で計算出来る様にしたいのです) 私の参考書は入門書で関数は殆ど(SUM等の基本的なもの)載っていないもので後日探してみる予定です。

すると、全ての回答が全文表示されます。

関連するQ&A