ドロップダウンリストで選択した商品の金額を2倍にする方法

このQ&Aのポイント
  • エクセルの2010で、sheet2のA列に商品、B列に金額があります。sheet1のドロップダウンリストで選択した商品の金額を2倍にしたいです。関数を使用することで簡単に実現できます。
  • E1(商品)がsheet2のA1~A3の場合、G1(個数)×2倍する方法を教えてください。関数を使用することで、選択した商品の金額を2倍にすることができます。
  • 初心者でもわかりやすい方法で、エクセルのドロップダウンリストで選択した商品の金額を2倍にする方法を教えてください。関数を使うことで、簡単に実現できます。
回答を見る
  • ベストアンサー

ドロップダウンリストの一部を選んだら2倍に…

エクセルの2010で、 sheet2のA列に商品 B列に金額があります。 (例) A1 りんご A2 パイナップル A3 メロン A4 きゅうり A5 はくさい A6 だいこん B1 5 B2 20 B3 15 B4 7 B5 12 B6 6 これをsheet1にドロップダウンリストで選択して金額が出るようにしています。 (例) E1(商品)入力規則のリストで =Sheet2!$A$1:$A$8 F1(金額)=VLOOKUP(E1,Sheet2!A1:B6,2,0) そして、Sheet1のG1に個数を入力したらH1に合計金額が出るようになっています。 ここからが問題なのですが、 E1(商品)がsheet2のA1~A3の時は、G1(個数)×2倍 させたいのですが、 なにか方法はあるでしょうか? A1~A3は連続した範囲です。 実際はもっとややこしい数値なので、最初から2倍の個数を手入力するというのはナシです。 関数でできるのでしょうか? どこかにチェックを入れたら2倍になるとかの方がいいのでしょうか? なるべく初心者でもわかる方法でご教授ください。 よろしくお願いします。

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

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

 Sheet1のG1セルはデータを手入力するための欄なのですから、そこに入力された値そのものを自動的に2倍にする方法は御座いません。  もし、マクロ等を使用してG列に入力されている値を2倍にする様にするようにしてしまいますと、E列に入力されている商品名を例えば「りんご」から「メロン」に変えて、更に「パイナップル」に変更した場合などには、最初に入力した個数の8倍の個数となってしまいます。  ですから、Sheet1のG列の個数そのものを2倍にするのではありませんが、以下の様な方法は如何でしょうか?  まず、Sheet1のG列の項目名を「個数入力」等とし、H列の項目名を「実際の個数」等としておき、合計金額はH列ではなくI列に表示させる様にします。  そして、Sheet1のH2セルには次の関数を入力して下さい。 =IF(AND($E2<>"",ISNUMBER($G2)),$G2*((COUNTIF(Sheet2!$A$1:$A$3,$E2)>0)+1),"")  次に、Sheet1のI2セルには次の関数を入力して下さい。 =IF(COUNT($F2,$H2)=2,$F2*$H2,"")  そして、Sheet1のH2~I2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。  次に、適当な使用していないシート(ここでは仮にSheet3とします)のA1セルに次の関数を入力して下さい。 =IF(Sheet1!A1="","",Sheet1!A1)  次に、Sheet3のA1セルをコピーして、Sheet3のB1~F1の範囲に貼り付けて下さい。  次に、Sheet3のG1セルに次の関数を入力して下さい。 =IF(Sheet1!H1="","",Sheet1!H1)  次に、Sheet3のG1セルをコピーして、Sheet3のH1セルに貼り付けて下さい。  次に、Sheet3のA1~H1の範囲をコピーして、同じ列の2行目以下に貼り付けて下さい。  そして、Sheet3のG1セルの関数を消去して、代わりに「個数」と入力して下さい。  これで、Sheet1は入力専用のシートとして使用し、印刷等はSheet3で行えば良いと思います。

zararara
質問者

お礼

取り急ぎ、そのまま入力したら、できました! すごい! 助かりました。 とても丁寧に教えてくださってありがとうございます。 どうなってるのか、今からじっくり勉強してみます。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>E1(商品)がsheet2のA1~A3の時は、G1(個数)×2倍 G1の式を =今の式*(COUNTIF(Sheet2!A1:A3,E1)+1) とでもしておきます。

zararara
質問者

お礼

keithinさん、回答ありがとうございます。

関連するQ&A

  • エクセルでドロップダウンリストを…

    エクセルでドロップダウンリストを使用する場合の質問です。 あるセルに入力した文字列によって、ドロップダウンリストで選択できる範囲を限定するような設定は可能でしょうか。 例) セルA1に「花」と入力したら     セルA2にドロップダウンリストで    セルE1~E4の「ひまわり、バラ、すみれ、チューリップ」を    選択できるようにし、    セルA1に「野菜」と入力したら、    セルA2にドロップダウンリストで    セルE5~E8の「トマト、なす、きゅうり、にんじん」を    選択できるようにする。 初歩的質問ですみませんが、よろしくお願いします。

  • エクセルのドロップダウンリスト

    エクセルのドロップダウンリストについて、困っていることがあります。 たとえば、 ・Aシート A列|B列|C列 1|ペン|200 2|鉛筆|100 3|本|200 ・Bシート A列|B列 ペン(ドロップダウンリスト)|200 という風に、Bシートのドロップダウンリストを選択すると、動的に200と隣のセル(B列)に表示するようにするにはどのようにすればいいでしょうか? よろしくお願いします。

  • エクセルのドロップダウンリスト

    入力規則のドロップダウンリストですが、次のような使い方は可能でしょうか?また可能なら方法を教えて頂けませんか?よろしくお願いします。 A、B列にドロップダウンリストを設定し、A列のリストに値を複数設定し、B列のリストの値をA列の値によって変化させたいのですが・・・。各列とも、複数行にわたってドロップダウンリストを設定しています。

  • ドロップダウンリスト

    お聞きしたいことがあります。 リストを作成し、入力規則からドロップダウンリストで 項目を選択する表を作成しました。 しかし、A列の幅が狭く、ドロップダウンリストで表示されるリストの文字が最初の3文字ぐらいなのです。 列の幅分しか、リストの表示スペースがないのです。 A列の幅に関係なく、もう少し表示されるリストの幅というか文字を増やすには、どうしたらいいでしょうか。 列の幅を広げたり、隣のセルを結合することは、表のレイアウト上できません。 ちなみに、別のエクセルの表では、それができているのですが、それをどうやったかわかりません・・・。 どなたかわかる方、教えてください。

  • ドロップダウンリストで空白のセルを非表示

    エクセル2013です。 Sheet1にドロップダウンリストを作成しました。 Sheet2のC列を参照したい為 Sheet2のC3~C20000に名前の管理で「商品名」としておき Sheet1の入力規則には リスト-「=商品名」 としました。 ただ、現在Sheet2のはC列にはまだ1,000行ぐらいまでしか値が 入っておらず、ドロップダウンリストでは空白の方が多く 選択が大変です。 Sheet2のC列には毎日入力されて値のある行が 日々増加していくので都度入力規則のリストのデータ範囲を修正するのは 大変なので C3~C20000としておきました。 NETで調べると、リストの範囲が同一シート内はoffsetを使えばできるみたいですが リストが他シートの場合はどうすればいいのでしょうか? 何かいい方法はありますでしょうか? よろしくお願いします。

  • 条件を絞り込んだVBAでのドロップダウンの作り方

    いつもお世話になっております。 今、Sheet1のA列に果物名、C列に数字が入力されています。(今回Sheet1のB列は、特に処理の対象とする訳ではないので不要です。) Sheet2のCells(15,1)に果物名を入力した際、Sheet1のA列の果物名でで絞り込んだC列の数字を、Sheet2のCells(15,2)にドロップダウンリストで表したいです。 当方が考えたロジックは Sheet1のA列をforで回しSheet2のCells(15,1)と一致した場合に、Sheet1のCells(i,3)の値を、あらかじめ入力規則に設定したセル範囲に転記。一致判定と一致した場合のCells(i,3)の値の転記を繰り返せばドロップダウンが出来上がるのですが、いまいちスマートではないなと思います。 いい方法があればご教示下さい。

  • リスト表示について教えて下さい

    見積書の作成をしております。 商品名の入力の際に、入力規則のリストを使用しております。 「商品名リスト」が100を超えているので、選ぶのが 大変になってきました。 入力規則のリストで、一気に30項目程、表示出来ればいいな~と思い 色々調べたのですが、どうもそのような事が、出来ない みたいなので困っております。 (表作成状況) 「B1:E8」に表を作っています。 (実際にはB1:E1000) 「Sheet2!A1:A14」に「商品名リスト」作成。 (実際には、Sheet2!A1:A1000) 「Sheet2!B1:B14」に「単価リスト」作成。 (実際には、Sheet2!B1:B1000) 「B2」には、入力規則のリストで「商品名」を選ぶようにしております。 「C2」=IF(B2="","",VLOOKUP(B2,Sheet2!$A$2:$B$1000,2,FALSE)) 「D2」は個数を入力 「E2」=C2*D2 B列の商品名を入れたいセルをクリックすると、リストが30項目程出てきて、その中から選ぶというのは、やはり無理なのでしょうか? 教えて頂けませんか。 よろしくお願いします。

  • 連動させたドロップダウンリストが前の値を反映しない

    こんにちは。 先日質問して、一応解決したと思っていたんですが、なぜか機能しなくなりました。 以下がその例です。 はじめはA列の値を受けて、B列の値がしぼられていたのですが、現在は、A列が空欄でもB列のリスト選択が出来てしまいます。C列も同様です。 なにが原因かいろいろ値を変えたり、入力し直したりしましたが一向に改善の兆しが見えません。 アドバイスお願い致します。 シート2に    A   B    C 1 式場  |A式場  |B式場 2 会場1 |aa   |dd 3 会場2 |bb   |ee 4 会場3 |cc   | 5 担当1 |aさん  |dさん 6 担当2 |bさん  |eさん 7 担当3 |cさん  | シート1の2行目に入力規則を適用    A   B    C 1 式場  |会場   |担当 2 規則1 |規則2  |規則3 名前を次のように定義して(各ブロックを選択) 式場:=Sheet2!$B$1:$C$1 (実際はZまで広げています) 会場:=OFFSET(Sheet2!$B$1,1,MATCH(Sheet1!$A$2,Sheet2!$B$1:$C$1,0)-1,3,1) 担当:=OFFSET(Sheet2!$B$1,4,MATCH(Sheet1!$A$2,Sheet2!$B$1:$C$1,0)-1,3,1) 入力規則に次のように定義。 リスト 規則1=式場 リスト 規則2=会場 リスト 規則3=担当

  • EXCELのドロップダウンリスト

    EXCELで困っています。以下の例です。 Sheet1にリスト表を作成し、Sheet2の表に入力します。 社名及び製品名を名前の定義でドロップダウンできるようにします。 A列に   社名:  A社・B社・C社・・・・ B列に  製品名: ねじ・ナット・スプリング・・・・・ C列に  製品番号: GH1・HK2・KS4・・・・・・ 尚、製品名および製品番号は社名により内容が異なります。 Sheet2の表の入力でB列の社名クリックで社名がドロップダウン選択でき、C列の製品名クリックで製品名がドロップダウン選択できます。 D列で製品名に準じた製品番号を自動で入力できるように VLOOKUPを用いて表示できたのですが、 問題は製品名は同じですが製品番号が違う時、同一の製品名の どれを選択しても同一製品名の中の最上位の製品番号しか 選択されません。 どうぞこの問題の解消していただける方のご回答をお願いします。

  • エクセルのドロップダウンリストについて(再)

    ドロップダウンリストで、参照先のリストは、単一の行、もしくは列でないといけないともいますが、たとえば、A1列にあらかじめ設定されたドロップダウンリストを表示(※ドロップダウンリストの右隣の▼ボタンを押したときに表示される内容です。)させたときに、A0001などのリストの隣、もしくは下にそれに対応する商品名を表示させるにはどうしたらいいのでしょうか? 先程やっていたら偶然にできたのですが、しばらくしたら更新されやり方が分からなくなりました。

専門家に質問してみよう