プロが教えるわが家の防犯対策術!

過去の質問を見直したのですが、どうも同じ事例をみつけることができなかったので質問させていただきました。なにぶん初心者ですのでよろしくお願いします。

当方の状況としましては経営するお店のレンタル商品の見積書を作成中です。
例.自転車は1日10円,車は1日50円  ・・・他に10種類程有り

(質問)
  A     B   C   D   E   F   G   H
1 項目   数量  単位  単価  小計  数量  単位  合計
2 自転車  1   台   10  10  2   日   20
3 車    1   台   50  50  3   日   150

という表を完成させたいのですが、(1)A列に入力する値はある程度決まった項目なので選択肢から選択できる状態にしたいのです。但し、都度可変できるようにもしたいです。(2)A列に入力された項目に応じてD列の単価に自動的に数値が表示されるようにしたいです。

どなた様かお力をお貸しください。よろしくお願い申し上げます。

A 回答 (4件)

準備として、項目と単価を別シート(Sheet2など)に作ってしまいましょう。

A列に「項目の読み」B列に「項目」C列に「単価」を1行目から入力し、B列全体を選択して「挿入」→「名前」→「定義」でA列に名前(今回は「項目」とします)を定義します。A列の入力済みのセル(どこでもよい)を選択して、「データ」の「並べ替え」から「昇順」で行を並べ替えておきます。

(1)見積書のA2セルに入力規則を設定します。
A2を選択し、「データ」→「入力規則」の設定を開き「入力値の種類」で「リスト」を選択。「元の値」に「=項目」と入力します。Sheet2で項目を増やしてもドロップダウンリストに反映されます。

(2)見積書D2セルにVLOOKUP関数を組み込みます。
D2セルを選択し「fx」ボタンからVLOOKUP関数ダイアログを表示させ、検索値に「PHONETIC(A2)」、範囲に「Sheet2!A:C」、列番号「3」を入力して「OK」をクリックします。これでA2セルに対応した単価がD2セルに自動入力されますが、A2が空白だと#N/Aが表示され見積書として使えませんので、IF関数にVLOOKUP関数をネスト(入れ子)します。
=IF(A2="","",VLOOKUP(PHONETIC(A2),Sheet2!A:C,3))

項目が漢字だと正しく検索されない場合がありましたので、Sheet2で読み仮名の列を設け、VLOOKUP関数で、見積書のA列からPHONETIC関数によりフリガナを参照しています。

あとは、2行目を必要なだけ、下方へオートフィルでコピーしてください。
    • good
    • 0
この回答へのお礼

早々のご返答ありがとうございました。
リストという機能はぞんじませんでした。とても勉強になりました。
本当にありがとうございました。

お礼日時:2007/05/16 12:57

答えは出ているようですが、僭越ながら補足を...


> どうも同じ事例をみつけることができなかったので
結構あるとは思うのですが...多分レンタルの事例としてしか探さなかったのかと..

予め選択肢を決めておくのは、他の方が言われているように「データ」-「入力規則」-「リスト」を選択すれば可能ですし、選択肢以外のデータ入力も可能です。
ただし、選択肢以外のデータを入れたときに、自動で選択肢リストに追加が出来ません。
又、VLOOKUPの検索元のセルへ自動的に追加(品名、単価ともに)も出来ません。
エクセルのワークシート関数は他のセルに何かをさせる事は出来ない仕様になっています。
VBAを使えばなんとか可能ですが...
    • good
    • 0
この回答へのお礼

早々のアドバイス本当にありがとうございました。
そうですね。今後はもっと過去の質問を熟読させていただきます。
また、VBAを利用するともっと出来る幅が広がるのですね。これからゆっくり勉強してゆきたいと思います。ありがとうございました。

お礼日時:2007/05/16 12:59

#2です。

訂正があります。
【B列全体を選択して「挿入」→「名前」→「定義」でA列に名前(今回は「項目」とします)】の部分で『A列に名前』とありますが、正しくは『B列に名前』です。スイマセン。。。
    • good
    • 0

別シートでも どこでもいいので


項目 と 単価を 打ち込んであるところが必要です。

わたしなら

j列に項目 k列に単価を いれたとして
D列にはいる 式は

VLOOKUP(A2,$J$2:$K$7,2,0)
として VLOOKUPを つかいますかねー。
A2 に入った項目のなかで J列と同じ物があれば その隣の単価すなわちK列を返す式でいいようなきがします。


ちなみに A列にある程度きまった 項目のみの入力をしたいのであれば 入力規則をつかうと うち間違いのミス防止につながるかもしれません。

説明下手でスイマセン;
    • good
    • 0
この回答へのお礼

早々のご丁寧なアドバイス本当にありがとうございました。
VLOOKUPという関数を使うといいのですね。なるほど。
とても勉強になりました。本当にありがとうございました。

お礼日時:2007/05/16 12:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!