• ベストアンサー

excelで質問いたします。

入力規則のリストを使って店舗のメニューの売上表を作っています。しかしメニューの種類が多いためリストから選ぶのが面倒です。 そこでリストを大まかに(ソフトドリンク・カクテル・丼ものなど)系列で分けて、例えばソフトドリンクを選ぶとそのリストからコーラ・オレンジ・トマトジュースなどの小分類が選べるようにしたいと思っています。 入力規則のリストだけでは不十分でしょうか? できましたら小分類で選んだ商品の単価を一緒に表示させて、売り上げた個数を入力すると売上合計が出るようにまでしたいと思います。 別の関数などを使用して出来るのであれば関数の名前を教えてください。 何卒よろしくお願いいたします!

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 御質問に対する直接の回答からは少々逸脱してしまいますが、 元データとして縦3列のリストに左列にメニュー、2番目の列に単価、右端の列に大分類を入力しておくと、 別表に大分類毎に仕分けた料理のリストが自動的に作成されて、その自動的に仕分けられたリストをドロップダウンリストの設定に利用する様にしておき、 又別の入力規則のドロップダウンリストによって売上表に大分類を選択入力すると、 売上表の「注文された料理欄」を選択した際に現れる入力規則のドロップダウンリストには、選択した大分類に含まれている料理名だけが表示される、 という方法は如何でしょうか?  こうしますと、新メニューが追加された等により、元データのリストに料理名を入力する際に、大分類毎に仕分ける表の何処に料理名を入力するのかを、一々考えながら作業をする必要は無く、 縦3列の表に単純に料理名と単価を入力して行き、後から、リストに入力済みの料理は、どの大分類に属するのかを入力するだけで良くなります。  勿論、元データのリストの右端の列に大分類を入力する際にも、ドロップダウンリストを使用する事が出来ます。  その設定方法は以下の通りです。  今仮に、元データのリストがSheet2のA列にあり、その1行目には「料理名」、「単価」、「大分類」といった項目名が入力されていて、実際のデータは2行目以下に入力するものとします。  又、大分類毎に仕分ける表はSheet2のE列~G列ににあり、その1行目には「ソフトドリンク」、「カクテル」、「丼もの」といった大分類名が入力されていて、その下の2行目には各大分類に属する料理の種類数が自動表示され、実際のデータは3行目以下に自動表示されるものとします。  又、売上表はSheet1に作成し、そのA列は日付の入力欄、B列は大分類の入力欄(ドロップダウンリスト入力)、C列は料理名の入力欄(ドロップダウンリスト入力)で、C列に料理名が入力されると、D列に単価が自動表示されるものとします。  まず、Sheet2のE1セルからG1セルにかけて、「ソフトドリンク」、「カクテル」、「丼もの」といった大分類名を入力して下さい。(鉤括弧は入力無用)  次に、Sheet2のE2セルに次の関数を入力して下さい。 =COUNTIF(E3:INDEX(E:E,ROWS(E:E)),"*?")  次に、Sheet2のE3セルに次の関数を入力して下さい。 =IF(ROWS($2:2)>COUNTIF($C:$C,E$1),"",INDEX($A:$A,MATCH(E$1,INDEX($C:$C,MATCH(IF(ROWS($2:2)=1,$A$1,E1),$A:$A,0)+1):INDEX($C:$C,ROWS($A:$A)),0)+MATCH(IF(ROWS($2:2)=1,$A$1,E1),$A:$A,0)))  次に、Sheet2のE2~E3の範囲をコピーして、Sheet2のF2~G3の範囲に貼り付けて下さい。  次に、Sheet2のE3~G3の範囲をコピーして、同じ列の4行目以下に貼り付けて下さい。  次に、以下の操作を行って、Sheet2のC2セルに入力規則のドロップダウンリストを設定して下さい。 【Excel2007よりも前のバージョンの場合】 Sheet2のC2セルを選択   ↓ 「メニュー」バーの[データ]ボタンをクリック   ↓ 現れた選択肢の中にある[入力規則]をクリック   ↓ 現れた「データの入力規則」ダイアログボックスの[設定]タブをクリック   ↓ 「入力値の種類」欄をクリック   ↓ 現れた選択肢の中にある[リスト]をクリック   ↓ 現れた「元の値」欄に次の数式を入力 =$E$1:$G$1   ↓ 「データの入力規則」ダイアログボックスの[OK]ボタンをクリック 【ExcelのバージョンがExcel2007以降のバージョンの場合】 Sheet2のC2セルを選択   ↓ Excelウィンドウの上の方にある[データ]タブをクリック   ↓ 現れた「データツール」グループの中にある[データの入力規則]ボタンをクリック   ↓ 現れた選択肢の中にある[データの入力規則]をクリック   ↓ 現れた「データの入力規則」ダイアログボックスの[設定]タブをクリック   ↓ 「入力値の種類」欄をクリック   ↓ 現れた選択肢の中にある[リスト]をクリック   ↓ 現れた「元の値」欄に次の数式を入力 =$E$1:$G$1   ↓ 「データの入力規則」ダイアログボックスの[OK]ボタンをクリック  次に、以下の操作を行って、Sheet2のB2セルに書式を設定して下さい。 B2セルを右クリック   ↓ 現れた選択肢の中にある[セルの書式を設定]をクリック   ↓ 現れた「セルの書式を設定」ダイアログボックスの[表示形式]タブをクリック   ↓ 現れた「分類」欄の中にある[通貨]をクリック   ↓ 現れた「記号」欄をクリック   ↓ 現れた各種の通貨記号の中から、[\]を選択してクリック   ↓ 「セルの書式を設定」ダイアログボックスの[OK]ボタンをクリック  次に、Sheet2のA2~C2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。  次に、Sheet1のD2セルに対して、Sheet2のB2セルと同じ書式を設定して下さい。  次に、Sheet1のB2セルに対して、Sheet2のC2セルに行ったのと同様の操作を行い、「データの入力規則」ダイアログボックスの[設定]タブの「元の値」欄に次の数式を入力して下さい。 =INDIRECT("Sheet2!E1:G1")  次に、「データの入力規則」ダイアログボックスの[OK]ボタンをクリックして下さい。  次に、Sheet1のC2セルに対して、Sheet2のC2セルに行ったのと同様の操作を行い、「データの入力規則」ダイアログボックスの[設定]タブの「元の値」欄に次の数式を入力して下さい。 =INDIRECT("Sheet2!R3:R"&ROW(INDIRECT("Sheet2!E1"))+1+HLOOKUP(INDEX($B:$B,ROW()),INDIRECT("Sheet2!E1:G2"),2,FALSE)&"C"&MATCH(INDEX($B:$B,ROW()),INDIRECT("Sheet2!E1:G1"),0)+COLUMN(INDIRECT("Sheet2!E1"))-1,FALSE)  次に、「データの入力規則」ダイアログボックスの[エラーメッセージ]タブをクリックして下さい。  次に、「データの入力規則」ダイアログボックスの[エラーメッセージ]タブの中にある[無効なデータが入力されたらエラーメッセージを表示する]と記されている箇所の左にあるチェックボックスをクリックして、チェックを外して下さい。  次に、「データの入力規則」ダイアログボックスの[OK]ボタンをクリックして下さい。  次に、Sheet1のD2セルに次の関数を入力して下さい。 =IF(COUNTIF(Sheet2!$A:$A,INDEX($C:$C,ROW())),VLOOKUP(INDEX($C:$C,ROW()),Sheet2!$A:$C,2,FALSE),IF(INDEX($C:$C,ROW())="","","(なし)"))  次に、Sheet1のA2~D2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。  次に、Sheet2のA2以下にメニューの料理名を、B2以下にその単価を、それぞれ入力し、ドロップダウンリストを利用するなどしてC2以下に大分類を入力して下さい。  これで準備は完了で、後はドロップダウンリストを使用するなどして、Sheet1の売上表のB列に大分類を、C列に料理名を入力しますと、C列に単価が自動的に表示されます。

hacyakesan
質問者

お礼

ご丁寧にありがとうございます。 初心者にも分かりやすく教えていただきとても助かりました!

その他の回答 (2)

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.2

> できましたら小分類で選んだ商品の単価を一緒に表示させて、売り上げた個数を入力すると売上合計が出るようにまでしたいと思います。 まず、ドロップダウンリストで大分類と小分類を2段階で表示し、商品の単価は小分類の商品名からVlookup関数による数式で表示させる方法は如何でしょう? 勿論、エラーを表示させないために「IF関数」を使う必要があります。 「エクセル ドロップダウンリスト」 http://www.kenzo30.com/ex_kisopoint/onepoint_sonota3.htm 「VLOOKUP関数を使ってみよう」 http://www.yoshikawa.co.jp/ybs/skilup/ybs0308.htm

hacyakesan
質問者

お礼

ドロップダウンリストが2段階で表示できるやり方はとても勉強になりました! 大変にありがとうございました。

回答No.1

いちばん基本的なやり方と思われる方法で。 D3:F7セルのような表を作成する D3:F7セルを選択して[Ctrl]+[Shift]+[F3]名前の作成 [レ]上端行 これで3つの名前が定義される A2セルの入力規則のリスト =$D$3:$F$3 B2セルの入力規則のリスト =INDIRECT(A2) 「入力規則 INDIRECT」で調べるといろいろ出てきます

hacyakesan
質問者

お礼

図解入りで教えていただきありがとうございました! とても参考になりました!

関連するQ&A

  • エクセル2007について質問です。

    エクセル2007について質問です。 セルの合計を求めたいのでよろしくお願いします。       A      B       C 1       単価  販売個数  売上 2  りんご 100     5    500 3  みかん 50     2    100 4  いちご 5             総売り上げ600 C2には、「=A2*B2」を入力しました。 C列はC4までC2をコピーしています。 C5に「=SUM(C2:C4)」と入力するとエラーになります。 どうすればよいでしょうか? よろしくイ願いします・

  • エクセル2000でデータを

    シート1にデータが入力してあります。(分類・ID・単価) シート2はVLOOKUPを使用してIDを入力すれば分類と単価が表示されるようにしました。 A=日付・B=分類・C=ID・D=単価・E=個数・F=合計 これに毎日データを入力していきます。 1日の分類ごとの合計はピポットテーブルを使い別シートに表示するようにしました。 シート3の1行目に分類、Aに日付がありその交わる部分にその合計が表示されるようにしたいのですが、何か方法はありますか?

  • Excel VBAで抽出したデータを別シートに表示する方法。

     Excelで20分類された3000行くらいの商品DBシートから名前の定義を利用して分類別のリスト選択(入力規則)しています。  内容は分類シートで商品DBシートから分類列別で抽出し(関数で分類)分類列ごとに名前の定義を設定し入力シートでリスト化(入力規則)を行っております。  商品DBシートにデータを追加すれば自動的に分類シートに反映はされますが、各セルに関数が入っており、再計算が非常に時間がかかります。  VBAで効率よく分類、またはそれ以外の方法がありましたら、ご教授いただければと思います。  よろしくお願いいたします。

  • エクセルで伝票を作りたいのですが・・・

    エクセルで伝票を作りたいのですが、関数やデータ入力規則など分からないことが多く困っています。 伝票と商品リストをシートで分け、伝票でフィルタの商品番号行を選ぶと、商品リストに対応した商品名、入数、単価が出てくるような伝票を作りたいのですが、どのようにしたらできますでしょうか? 教えて下さい。よろしくお願いします。

  • エクセル 関数について

    エクセルの型番と、個数が入力されているデータから、 入力されている型番の一覧リストと、各型番の個数を求めるような 関数が知りたいです。 お願いいたします。

  • 関数の問題でわからない問題があります

    関数の問題でわからない問題があります 申し訳ないのですが教えてください 仕入れ値が1個40円である商品を1個50円で売ると500個売れる。 この商品を1円値上げするごとに10個ずつ売り上げが減ることがわかっている。 以下の問いに答えよ。 (1)単価を1円上げると、売り上げ個数がいくつ減るか求めよ。 (2)売り上げ個数をy、単価をxとする時、yをxの関数として表せ。 (3)売り上げ高をYとして、Yをxの関数で表せ。 (4)売り上げが最大になるときの単価を求めよ。

  • エクセル 関数

    下記「甲」の表があったとします。 番号/商品/単価(円)/個数/売上(円) 1/リンゴ/50/3/150 2/みかん/10/10/100 3/もも/100/2/200 4/なし/60/1/60 5/ぶどう/80/4/320 さらに、下記「乙」の表があったとします。 番号/売上(円) 1/150 3/200 5/320 「乙」の表を作成するのに、売上額をいちいち「甲」の表を参考に手入力するのは面倒なので、「番号」欄に「1」と入力したら「売上」欄には自動的に「150」が表示されるようにしたいのです。 どのような関数を使えば良いか教えてください。 宜しくお願い致します。

  • エクセル 関数

    下記の「甲」の表があったとします。       単価(円) 個数 売上(円) 1 リンゴ 50   5   250 2 みかん 10   10   100 3 もも  100   2   200 4 なし  60   3   180 5 ぶどう 80   2   160 そこで更に下記「乙」の表があったとします。 対象番号 売上  1   250  3   200  5   160 「乙」の表を作成するのに、売上を「甲」の表を参考に手入力するのでは面倒なので、例えば「対象番号」欄に「1」と入れたら「売上」欄には自動で「250」と表示されるようにしたいのです。 どのような関数を使えば良いか教えて下さい。 よろしくお願いします。

  • エクセルの入力規則

    エクセル2007の入力規則で、リストを設定したのですが、 リストのドロップダウンメニューが出てきません。 他の入力規則は設定されるのですが、リストだけがどうしても・・・ ただ、リスト以外の値を入力するとエラーが表示されるので、リストの入力し規則は生かされているようです。 分かる方、教えてください。

  • Excelでの入力規則について

    Excelの入力規則のリストで?,A,Bの3つから選択できるように設定しておきます。ここで例えば10個のセルに"?"を1つで、残りのセルは"A"or"B"を選択します。ここでこの10個のセルの"?"の個数を数えるためCOUNTIF関数を使ってカウントするとなぜか10個とカウントされます。"A"と"B"は表示されている通りの個数なのですが。 どうしてでしょうか?EXCELが破損しているのでしょうか???

専門家に質問してみよう