- ベストアンサー
エクセルで不特定の項目ごとに合計を自動計算したいのですが。
こんな表があったとします。 品名 数量 単価 金額 りんご 10 250 2500 ばなな 8 120 960 すいか 15 700 10500 ばなな 3 120 360 りんご 21 250 5250 ↓ りんご 7750 ばなな 1320 すいか 10500 こんな感じに自動で入力された商品ごとの合計金額を計算したいのです。 商品は不特定ですのでどんなものが入力されるか分かりません。 宜しくお願いいたします。
- oldbook915
- お礼率75% (9/12)
- オフィス系ソフト
- 回答数12
- ありがとう数14
- みんなの回答 (12)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは~♪ 皆さんお勧めのピボットテーブルが、 1番良いと思うんですが~。。 >データーの更新をせずに表を作った時点で自動的に >更新できる方法がないかと思っています 更新が、面倒ですか? でしたら、数式か、VBAになるのではないでしょうか? ★数式の案ですけれど。。。 同シートの場合です。 mike_gさんの表をお借りします。。。。すみません。 F2: =IF(COUNT(INDEX(1/(MATCH($A$2:$A$100,$A$2:$A$100,)=ROW($1:$99)),))<ROW(A1),"",INDEX(A:A,SMALL(INDEX(SUBSTITUTE(ISNUMBER(1/(MATCH($A$2:$A$100,$A$2:$A$100,)=ROW($1:$99)))*1,0,10^7)*ROW($1:$99)+1,),ROW(A1)))) 下にコピーしておきます。 mike_gさんの表のF列の様に、品名が抽出されます。 注)あまりデータ行が多いと、重くなります。。。 ★合計は、 これも、mike_gさんのをお借りして~。。。 >セル G2 に次式を入力して、此れを下方にズズーッと入力 > =IF(F2="","",SUMIF(A$2:A$100,F2,D$2:D$100)) 。。。。Rinでした~♪♪
その他の回答 (11)
- since_hoge
- ベストアンサー率50% (5/10)
ピボットテーブルに拘っているわけではありませんが、追記します。 >こんな感じに自動で入力された商品ごとの合計金額を計算したいのです。 自動でデータが入ってくるとのことなので今回のケースでは質問者さんはデータの入力者ではないですね。他者が入力するか、DB等からデータを引っ張ってくるか >データーの更新をせずに表を作った時点で自動的に更新できる方法 これがいつなのか?が問題ですね。 1.他者が入力して、その時点で合計も同時に(データ更新なしに)確認をしたいのであれば関数で求めるしかありませんが文面からして違うでしょう。 2.入力者と別の方、もしくはDB等から抽出したデータの合計を求めるのであれば合計確認者が当該BOOKを開いた時点ということになります。 3.当該BOOKを開いている最中にDB等からマクロなどを使い(手動は無いでしょう?)データを引いてくる場合はその直後ですね。 ※その他の状況もあるかもですが・・・ ※排他書き込み許可は考慮してません。推奨されないと思うので。 2であれば、ピボットテーブルのオプションで「開いた時に更新する」にチェックすれば解決します。 3であればマクロの最後に当該シートを選択後 ActiveSheet.PivotTables("任意の名前").RefreshTable を実行すれば自動で更新されます。
お礼
ありがとうございます。 実は、私は建設会社で原価管理をして入る者です。 今回質問させていただいたのは、工事の原価計算書から業者別の発注工事額を自動で求めたかったのです。 今までは手計算をしていましたが、なんとか関数を使って自動でできないかなーと常々思っており、今回解決できて非常によかったです。 原価管理の担当者はたくさんおり私も含めてみんな苦労して計算していますので、今回の関数を埋め込んだ原価計算書を配布したいと思います。 皆様ほんとうにありがとうございました。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 どの程度の自動化をお望みか分かりませんが、このマクロを、コントロールツールのボタンに取り付けたらどうかと思います。フィルタオプションを駆使しても、慣れれば、そんなに時間的な差があるわけではありませんが。 'シートモジュール 'コントロールツールのボタン・イベント Private Sub CommandButton1_Click() Call ListUp End Sub '標準モジュール 'データは必ず、項目行(タイトル名)が必要です。 Sub ListUp() Dim r As Range '---------------------------- '**初期設定** 'データの書き出し場所 Const TO_PASTE As String = "F1" 'データの左上端の位置 Set r = Range("A1").CurrentRegion '---------------------------- Application.ScreenUpdating = False Range(TO_PASTE, Range(TO_PASTE).End(xlDown)).ClearContents With r.Columns(1) If .Cells.Count < 3 Then Exit Sub 'データが少なすぎる .AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Range(TO_PASTE), _ Unique:=True End With With Range(TO_PASTE, Range(TO_PASTE).End(xlDown)) 'フィルタオプションが失敗している場合 If .Cells(.Count).Row = 65536 Then Exit Sub Set r = r.Offset(1).Resize(r.Rows.Count - 1) .Cells(1).Offset(, 1).Value = "金額" .Offset(1, 1).Resize(.Rows.Count - 1).FormulaLocal = _ "=SUMIF(" & r.Columns(1).Address(1, 1, 0) & ",RC[-1]," & _ r.Columns(4).Address(1, 1, 0) & ")" End With Set r = Nothing Application.ScreenUpdating = True End Sub
お礼
マクロになるかなーと思っていましたが。関数でやりたかったのです。 皆さん本当にありがとうございました。
[ANo.9回答]への補足コメント、 》 それも嫌うなら貴方を満足させる方法はない、と思います。 と述べましたが、[ANo.8回答 Rin]さんが見事に解決されていましたね。Rinさんに脱帽 m(__)m でもォ~、失礼ながら、oldbook915さんはそれを解読(理解)できますかぁ?
お礼
理解できません
[ANo.7この回答へのお礼]に対するコメント、 》 データーの更新をせずに表を作った時点で自動的に更新できる方法がないかと思 》 っています。 あらかじめ、全ての品名をF列に列挙しておいたら如何かと。この場合、A列に登場しない品名の合計額は 0 と表示されますが。 それも嫌うなら貴方を満足させる方法はない、と思います。
ピボットテーブルによる集計がお奨めだけど、新たに入力されたデータを結果に反映させるために[データの更新]を実行する必要があります。 下記の SUMIF関数による集計は、新たに入力されたデータが既存の品名の場合は結果が自動更新されるが、新たな品名が入力された場合は、ステップ2~7を再実行する必要があります。 A B C D E F G 1 品名 数量 単価 金額 品名 合計額 2 りんご 10 250 2500 りんご 7750 3 ばなな 8 120 960 ばなな 1320 4 すいか 15 700 10500 すいか 10500 5 ばなな 3 120 360 6 りんご 21 250 5250 7 1.範囲 A1:A100 を選択 2.[データ]→[フィルタ]→[フィルタオプションの設定]を実行 3.[抽出先]として“指定した範囲”に目玉入れ(あるいは、そうなっていることを確認) 4.[リスト範囲]が $A$1:$A$100 を入力(あるいは、そうなっていることを確認) 5.[抽出範囲]が $F$1 を入力(あるいは、そうなっていることを確認) 6.“重複するレコードは無視する”にチェック入れ(あるいは、そうなっていることを確認) 7.[OK]をクリック 8.セル G2 に次式を入力して、此れを下方にズズーッと入力 =IF(F2="","",SUMIF(A$2:A$100,F2,D$2:D$100))
お礼
ありがとうございます。 データーの更新をせずに表を作った時点で自動的に更新できる方法がないかと思っています。
- CHRONOS_0
- ベストアンサー率54% (457/838)
品名でソートしてから 「データ」「集計」で合計を求めるだけです 合計欄だけでよければグループの詳細を折りたためばいいのです
- since_hoge
- ベストアンサー率50% (5/10)
>混在していても、混在している通り表示し合計を計算したい とは、「りんご」と「リンゴ」は別物と判断して良いと云うことでしょうか? 関数ではありませんがピボットテーブルを使って見ては? ウィザードに従って、行に「品名」、データに「金額」の合計を選択。 で、出来ます。いかがでしょう?
お礼
ピボットテーブルは使った事がないので一度使って見ます。 ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
以下の方法は如何でしょうか。 仮に表リストがシート1、シート2に合計項目セルをA列とし、金額合計セルB1に=IF($A1<>"",SUMIF(sheet1!A:A,$A1,sheet1!D:D),"")をした方向にコピーで如何でしょうか。
お礼
ありがとうございます。
- ipsum11
- ベストアンサー率21% (55/251)
「= SUMIF(A2:A6,"りんご",D2:D6)」で、りんごの合計 「= SUMIF(A2:A6,"ばなな",D2:D6)」で、ばななの合計 「= SUMIF(A2:A6,"すいか",D2:D6)」で、すいかの合計
お礼
ありがとうございます。
- Turbo415
- ベストアンサー率26% (2631/9774)
たとえば、品名A列 数量B列 単価C列 金額D列で9行目まで数値が入っているとして、E1に品名を入れると、F1に合計が出るようにするなら、=SUMIF(A1:D9,E1,D1:D9)です。つまり、E1と同じ品名の行の金額(D列)だけを合計するとういうことになります。 表が大きくなればD9をD100とかD1000とかにするだけです。 このときE1にはA列にある物と同じ名前を入れなければいけません。ですから、A列には「りんご」となっているのにE1に「リンゴ」としてしまうと、合計できませんし、A列に「りんご」と「リンゴ」が混在している場合は別の物と判断してしまいますので注意してください。 こんな感じで良いでしょうか? 参考までに。
補足
早速ありがとうございます。 ご指摘の通り「りんご」と「リンゴ」が混在している場合なのです。 本当に調べたかったのは「不特定」ということです。 混在していても、混在している通り表示し合計を計算したいのです。 SUMIFだと検索条件を特定しないといけませんが、不特定の検索条件に対応した計算式が分からないのです。 スミマセンがいかがでしょうか?
- 1
- 2
関連するQ&A
- 自動入力項目に手入力もできるようにしたい。
簡単に説明します。 次の表を作成しています。 品名 単価 数量 金額 ーーーーーーーーーーー 品名を入れると次の単価表から単価を表示し、数量を入れると金額を計算して表示します。このとき特定のD、Fについては、その都度単価を 手で入力したい。D、Fの単価表には9999と仮にいれてあります。 単価表 ーーーーー A 10 B 100 C1000 D9999 E 1 F9999
- ベストアンサー
- オフィス系ソフト
- エクセル2000で・・
品番 品名 単価 在庫数 1 リンゴ 120 1000 2 ミカン 100 1000 3 バナナ 80 1000 という表があるとします。 次に別シートに 品番 品名 単価 売れた数 2 ミカン 100 10 と、売れた分量を示す表があります。 そしてもう一つ別シートに 品番 品名 単価 在庫数 1 リンゴ 120 1000 2 ミカン 100 990 3 バナナ 80 1000 というシートがあり、一つ目のシートから二つ目のシートで売れた分の数を引いた数量を表す表があります。 二つ目の表を入力した際に、自動的に三つ目の表の在庫数が表示されるような関数はありますでしょうか?
- ベストアンサー
- Windows XP
- エクセル 計算が自動的に切り替わらない
こんにちわ お願いします。 会社で見積書を作成してます。 エクセルで見積書作成したファイルを基にコピーし、数量、単価だけを変更、別見積書作成しました。その際自動的に合計数量が計算されません。(計算される時もあります。) 計算方法は、基の見積表:数量x単価=合計金額 総合計はzで入力して見積書作成しています。 前に作成した。見積書をコピーして数量などを変更して出したいのです。 良いファイルの作成方法があれば教えて下さい。 よろしくお願いします。
- ベストアンサー
- Windows XP
- Excelでこういうことは出来ますか?
例えば、セルA1に数量。セルA2に単価。セルA3にA1*A2で小計という計算式を入れて計算させたいのですが、場合によりセルA2に単価を入れずに直接セルA3に合計金額だけを入れたいのです。 つまり、 品名 数量 単価 小計 すいか 10 300 3000 加工費 1 (空白) 2500 こういう表にさせたいのです。 どうすればよいでしょうか? わかりにくいかもしれませんが、どしどし補足していただいて結構ですのでよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルで注文書→請求書を作っていて困っています。
下記のような注文書がSheet1にあります。 A列 B列 C列 D列 E列 品名 数量 単位 単価 小計 りんご 1 個 100 ¥100 みかん 0 個 30 ¥ 0 バナナ 2 本 100 ¥200 スイカ 2 個 200 ¥400 メロン 0 個 300 ¥ 0 合計 ¥700 上表のような顧客が数量を入力すれば小計が出るとこまでは出来ています。 Sheet2に注文のあった品目のみで請求書を生成したいのですが、 良い方法がありましたら教えていただけますでしょうか。 A列 B列 C列 D列 E列 品名 数量 単位 単価 小計 りんご 1 個 100 ¥100 バナナ 2 本 100 ¥200 スイカ 2 個 200 ¥400 合計 ¥700 ※要するに品名のラインナップがある中で0個のものは飛ばして 上図のような形に自動生成できるものが希望です。 色々な関数を試してみましたが、結果関数の意味も分からずやっているので、 なかなか思うようにできなくて困っています。 どうぞ、良い方法がありましたらご教示の程、よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- 1列おきの単価×数量を合計する方法
A B C D E F ・・・ 1 品名1 数量1 単価1 品名2 数量2 単価2・・・単価30 2 リンゴ 1 100 梨 2 300 上記の様な表があります。 2行目の金額を計算する場合通常でしたら =B2*C2+E2*F2・・・ という計算式と使用しますが、 品名が30を超える場合もあるので、上記の計算式では足していくのが非常に大変です。 数量×単価を、簡単にかけてくれる計算式はありますでしょうか?? MODやCOLUMNを使用して色々試してみたのですが、わからなかったので教えて下さい・・・ 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- 任意のセルに小計、合計と入力したら自動計算してくれ
エクセル2007でVBAを何度も挫折しています 任意のセルに小計、合計と入力したら自動計算してくれるVBAの方法を教えてください セル G21 商品名 L21 詳細 V21 数量 X21 単位 Z21 単価 AD21 金額(V21:数量*Z21:単価) の何処にでもある見積書なのですが 任意のG行に小計・合計と入力すると AD行に金額が自動で入力させるVBAの仕方が知りたいです。 3行ほどの見積もあれば100行を超える見積もあります 教えてください。
- ベストアンサー
- オフィス系ソフト
- ファイルメーカー6のif関数について
ファイルメーカー6、MacOS9.2を使ってる初心者です。 ファイルメーカーの事で前も教えて頂きましたが、またお願いします。 商品名、数量、単価、合計という4つのフィールドがあります。 合計フィールドは数量フィールド×単価フィールドという計算式で出していて これ自体は問題ないんですが、 商品名を値一覧から(約10品名)選び、選んだ品名から自動で 単価を入れたいんですがやり方が分かりません。 例えば商品名にみかんを選んだ場合は単価に50を、 リンゴを選んだら70を バナナを選んだ90を・・・・ こんな感じで10品目分を設定したいんですが出来ません。 ひとつだけならif関数で出来たんですが・・・ もちろん、設定が出来るならif関数じゃなくても良いんです。 よろしくお願いいたします。
- ベストアンサー
- その他(データベース)
- Excel計算が合わない
Excelで請求書を作成しましたが、合計金額が一円単位出会わないことがあります。 表は簡単に数量x単価=合計 数量x単価=合計 金額合計 金額の合計の答えが1001だとしても時々1000だと計算したりしてます。 考えられるのは小数点を使った計算があるからかもしれませんが???数量0.5x単価33円=17とか四捨五入があるときによく間違いがあるような気がします。 手直しする方法を教えてください。
- ベストアンサー
- オフィス系ソフト
- 【EXCEL2000】2つのリストの合計を出すには?
リストA リンゴ 3 みかん 5 バナナ 2 スイカ 3 リストB りんご 2 メロン 4 バナナ 3 いちご 2 ↑のような2つのリストがあるとして、 リストC りんご 5 みかん 5 バナナ 5 スイカ 3 メロン 4 いちご 2 リストA・Bの合計がリストCのようにするにはどのような関数を使えばいいかお解りになる方教えてください。 判りづらい質問で申し訳ありません。m(_ _)m ※品名と数量は別セルです。
- 締切済み
- オフィス系ソフト
お礼
解決しました! 大変助かりました。胸のつかえが取れたようです。 本当にありがとうございました。