エクセルVBA条件一致時の数量加算

このQ&Aのポイント
  • エクセルVBAを使用して、特定の条件に一致した場合に数量を加算する方法を教えてください。
  • 質問者は、ユーザーフォームを使用して商品名と金額を入力し、一致する条件の数量を加算したいと考えています。
  • 質問者が具体的な例として挙げたのは、りんごの金額が100で数量が2の場合、セルC1の値が3になるようにしたいというものです。
回答を見る
  • ベストアンサー

エクセルVBA条件一致したとき数量加算

はじまして。最近VBAを勉強するようになり、壁にぶつかりました。      A      B     C    商品名    金額   数量 1   りんご     100    1 2   みかん    110      2 3    りんご    120      1 4   ぶどう     200     3 5     このような表にユーザーフォームを使い入力したいのですが (ユーザーフォームには商品名、金額、数量を入力するテキストボックスがあります。) 例えば次に「りんご 100(金額)  2(数量)」 と入力したときに、セルC1の数値が3になるようにしたいのです。 ようは商品名、金額の両方が一致したときにはそのあてはまる列の数量に加算し、 そうでない場合は下の5列に入力したいのですが、どうすればいいでしょうか。 初めての質問なのでわかりにくかったらすいません。

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

  • ベストアンサー
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

一例です Sub Macro1() hinnmei = ユーザーフォームで入力された商品名 kingaku = 同上金額 suuryou = 同上数量 Range("A1").Select Do While Selection.Value <> "" If Selection.Value = hinnmei And Selection.Offset(0, 1).Value = kingaku Then Selection.Offset(0, 2).Value = Selection.Offset(0, 2).Value + suuryou Exit Do End If Selection.Offset(1, 0).Select Loop If Selection.Value = "" Then Selection.Value = hinnmei Selection.Offset(0, 1).Value = kingaku Selection.Offset(0, 2).Value = suuryou End If End Sub 上から順に見ていくだけの簡単な方法です

tyoihonge
質問者

お礼

ありがとうございました。これからためしてみようと思います。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

質問の例で りんごの行が2つあるのに >セルC1の数値が3になるようにしたいのです とC1だけ言っているんのは、どういう仕組み(考えるの)か。 その思考過程を文章で説明しないと質問にならない。 ーーー またフォームで「りんご」と入れたときA列のりんごの行の数に加えたり、件数を加えるというのは、エクセルの シートの使い方としては違反です。 エクセルは、入力データはそのごとに一旦各行にデータを残し、そのごや最終入力後に、関数やVBAで思うデータを入れるものだ。 入力経過が残らず、特にビジネスでは、そんなことしたら失格。通行人の人数を、カウンターでプッシュしてカウントするようなつかい方は、エクセルではしない。 りんごのある行を見つけるのさえ、VBAの学習が少し進まないと、そこに至らないだろう。

関連するQ&A

  • VBAで条件が一致するものの合計

    条件が一致するものを合計し、別のシートに値を代入したいです。 日付 商品 個数 金額 1/1 りんご 1個 500円 1/3 みかん 1個 300円 1/3 みかん 2個 600円 1/5 みかん 5個 1500円 1/1 ぶどう 2個 800円 1/2 りんご 2個 1000円 このような表でりんごの合計1500円、みかんの合計2400円 を別のシートの1月の列へ代入したいのですが VBAでできる方法を教えてください。 この表は毎月上書きされるようになっています。

  • 行と列の条件に一致したら印を付けたい

    シート1に名前と商品のリストがあります 名前 商品 佐藤 りんご 佐藤 みかん 佐藤 ぶどう 加藤 みかん 山本 バナナ 山本 みかん 小林 りんご 小林 ぶどう 小林 みかん 小林 バナナ シート2の行に名前、列に商品名の表があり、シート1のリストを元に 行と列の条件に一致した箇所に印をつけたいのですが、 何か適当な関数はありますでしょうか? りんご みかん ぶどう バナナ 佐藤 加藤 山本 小林

  • 数量を足すマクロ

    A列に商品名があり、B列に数量があります。 A列はあいうえお順に並んでいます。 A列には重複した商品名があり、重複した商品名の数量を足すことはできないでしょうか。 例 A---------B みかん   8 みかん   9 りんご   10    ↓ 結果として、 A----------B みかん   17 りんご   10 にしたいのですが、ずっと考えていても答えが導け出せないので質問しました。 よろしくお願いします。

  • エクセル 複数条件 VBA

    VBAと関数の両方を教えていただきたいです。 シート”DATA”に以下の入力フォームがあります。 A列には日付 B1には”りんご”、B2以降には数量 C1には”みかん”、C2以降には数量 D1には”なし”、D2以降には数量 シート”照会”に以下の照会画面があります。 B1には開始日、D1には終了日 A2には”りんご” A3には”みかん” A4には”なし” B2以降はそれぞれの開始日から終了日までの個数が入るようにしたいのです。 例えば、シート”DATA”に毎日10が入力されていて、シート”照会”のB1に1/1、D1に1/3と入力されたら30、B1はそのままでD1が1/10なら100と果物ごとに表示されるようにしたいのですが、どうすればよいでしょうか。 よろしくお願い致します。

  • Excelで複数条件を満たし残高を計算する関数

       A列     B列  C列     D列     E列  F列    日付     No. 商品名  仕入/販売  金額 残高 1  2010/12/1  101  りんご   仕入  ¥1,000    ¥- 2  2010/12/2  101  りんご   販売  ¥1,000    ¥- 3  2010/12/3  122  みかん   仕入  ¥1,200    ¥400 4  2010/12/4  122  みかん   販売  ¥800     ¥- 5  2010/12/5  135  バナナ   仕入  ¥1,300    ¥800 6  2010/12/6  135  バナナ   仕入  ¥300     ¥- 7  2010/12/7  135  バナナ   販売  ¥800     ¥- 8  2010/12/8  148  ぶどう   仕入  ¥2,000    ¥- 9  2010/12/9  148  ぶどう   販売  ¥1,500    ¥- 10 2010/12/10  148  ぶどう   販売   ¥500 ¥- 上記のようなEXCELの表があります。 B列No.(第一条件)、C列商品名(第二条件)が一致するものを 仕入から販売を引いてF列のような数字になるように残高を出したいです。 どんな関数でも構いません。 関数でできる方法があれば教えてください。 実際のデータ量が2000行くらいあるので手作業でするのが大変で…。 よろしくお願いしますm(_ _)m OS:WindowsXP Office:2007

  • EXCEL VBA 複数列を2列にまとめる

    下記のようなデータ(列数も行数も常に変わり、固定ではない)を ┌───────────────── │ A 列  | B列   | C列   | D列 ├─────────────────── │ 1 │伝票01 │品名01 | 品名02 │品名03 ├─────────────────── | 2 │0011 │みかん │みかん | りんご ├─────────────────── │ 3 │1001 │りんご  │いちご |    ├─────────────────── │ 4 │1100 │いちご  │みかん | ぶどう  └─────────────────── ↓のように2列にまとめる方法はございますでしょうか?VBAを希望しております。   よろしくお願い申し上げます。 ┌───────────────── │ A │ B   ├───────────────── │ 1 │伝票  │品名 ├───────────────── │ 2 │0011_品名01 │みかん  ├───────────────── │ 3 │1001_品名01 │りんご    ├───────────────── │ 4 │1100_品名01 │いちご ├───────────────── │ 5 │1001_品名02 │みかん  ├───────────────── │ 6 │1100_品名02 │いちご  ├───────────────── │ 7 │1001_品名02 │みかん  ├───────────────── │ 8 │1100_品名03 │りんご  ├───────────────── │ 9 │1001_品名03 │  ├───────────────── │ 0 │1001_品名03 │ぶどう  ├─────────────────

  • エクセルで複雑条件での抽出

    特定の商品名を抽出したいと考えています。 商品   等級 -------------- りんご  1級 りんご  2級 みかん  2級 みかん  3級 みかん  4級 もも   1級 もも   3級 ぶどう  2級 ぶどう  4級 上記のような表があります。 抽出したいのは、「2級」の商品だけですが、同じ商品で「1級」があると抽出したくないです。 つまりこの表だと、「みかん」「ぶどう」の商品名を抽出したいです。 りんごは1級があるので、抽出したくありません。 このような場合は、フィルタでできるのでしょうか? もしくは関数などでできるならそれでも良いです。 色々考えてみましたが、うまくいきません。 どうぞお知恵をお貸しください。 よろしくお願い致します。

  • VLOOKUP関数で取得した数値を加算したい

    はじめまして、初めて質問をさせていただきます。 以下のような処理を行いたいのですが教えてください。    シート1     |   シート2   A   B      |   A    B  1りんご        | 1バナナ  10 2バナナ  25     | 2スイカ  3 3みかん  5      | 3みかん  15 4イチゴ  30     | 4ナシ   5 シート1の数量B列に、品目A列を検索キーとして、シート2の品目A列と一致する品目の数量を「加算」する形で入力したいのです。 関数を入力して、式を下にコピーしていきますが、この際に ・一致するものがない場合は、以前入っていた数値をそのままにする。 ・数値が未記入のセルもValueなどのエラーを出さないで空白セルのままにする。 結果として、このような表になって欲しいのです。   A   B    1りんご    ←空白セルは空白のまま 2バナナ  35 ←一致する品目があったので加算 3みかん  20 ←一致する品目があったので加算 4イチゴ  30 ←シート2に一致する品目がないので変化無し としたいのですが、どのような記述の式にすればよろしいでしょうか? よろしくお願いします。

  • あるセルの文字列が条件で、あるセルに色を設定するには?(2)

    例えば、下のような表で      A      B      C       D      1   商品名   数量     名前    2   りんご     2     さとう 3   みかん     1     さとう     3 4   ぶどう     1     すずき 5   ばなな     2     すずき     3 6   みかん     3     たなか 7   りんご     2     たなか 8   ぶどう     2     たなか     4 「みかん」という商品名の時だけ、C列の重複している名前の一番下のセルに、黄色を設定したい場合は、どうしたらよいのでしょうか? つまり、セルC3とC8に色をかけたいのです。不可能でしょうか(-_-;)ちなみにD列は、重複している名前の一番下の行に合計が出る関数が入っています。一番下が難しいなら、みかんの商品があるうちの重複している名前(さとう・たなか)すべてに色がついてもかまいません。 どなたかいい方法があれば教えてください。よろしくお願いします(>_<)

  • SQL文で表すには

    以下の表を用いてSQL文を作成しようと思ってるんですが、途中までしか思いつかないので、どなたかご教授のほうよろしくお願いします。 shohin shiire 商品番号 商品名 単価   仕入番号 仕入先名  0001 みかん 100     001  A 0002 りんご 200     002 B 0003 ぶどう 300     003   C tran 購入番号 商品番号 仕入番号 数量 1 0001 001 1 2 0001 002 2 3 0001 003 3 4 0001 001 4 5 0001 002 5 6 0002 003 6 7 0002 001 7 8 0002 002 8 9 0003 003 9 10 0003 001 10 11 null 0004 20 これを以下のように出力するためにはどのようなSQL文を書けばよいですか? 商品番号 商品名 仕入番号 仕入先名 数量 単価 金額  0001 みかん 001    A   5 100 500  0001 みかん 002    B   7 100 700  0001 みかん 003    C   3 100 300  0002 りんご 001    A   7 200 1400  0002 りんご 002    B   8 200 1600  0002 りんご 003    C   6 200 1200  0003 ぶどう 001    A   10 300 3000  0003 ぶどう 003    B   9 300 2700  0004 null 004   null   20 null null ここまでは正しいと思うのですが・・・ select shohin.商品番号, shohin.商品名, shiire.仕入番号,     tran.数量, shohin.単価, tran.数量 * shohin.単価 as 金額 よろしくお願いします。

専門家に質問してみよう