エクセルVBA条件一致時の数量加算
- エクセル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列に入力したいのですが、どうすればいいでしょうか。 初めての質問なのでわかりにくかったらすいません。
- tyoihonge
- お礼率25% (1/4)
- Visual Basic
- 回答数2
- ありがとう数1
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一例です 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 上から順に見ていくだけの簡単な方法です
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17068)
質問の例で りんごの行が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のリストを元に 行と列の条件に一致した箇所に印をつけたいのですが、 何か適当な関数はありますでしょうか? りんご みかん ぶどう バナナ 佐藤 加藤 山本 小林
- ベストアンサー
- オフィス系ソフト
- エクセル 複数条件 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(エクセル)
- 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 金額 よろしくお願いします。
- ベストアンサー
- Oracle
お礼
ありがとうございました。これからためしてみようと思います。