- ベストアンサー
エクセルの関数について教えて下さい
現在ある表を元に、見積書を作っています。 すごい効率が悪く、困っています。 A1~G3に表があります。(実際にはもっと多いです) 1行目に商品名 2行目に金額 3行目に個数 G3 に合計 1・2行目は、元々商品名・金額が入っており 3行目に個数を入れていきます。 G3に合計が入るようにしています。 B2、350円 C2、320円 D2、400円 E2、500円 F2、550円 G2 B3、 1 C3、 D3、 1 E3、 F3、 G3、750円 (現在のG3に入っている数式) =F3*F2+E3*E2+D3*D2+C3*C2+B3*B2 項目が多い為、数式がすごい事になっています。 もっといい方法はないでしょうか? わかる方おられましたら、教えて頂けませんか? よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
No.1・3・4です! ほんとぉ~!にごめんなさい。 今までの私の回答は全て無視してください。 G3セルに =SUMPRODUCT(B2:F2,B3:F3) だけでOKかと思います。 というわけで、アップした画像は削除させていただきます。 どうも失礼しました。m(__)m
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17069)
対応した行や列(この質問は列の場合)を多数掛けて、それらを足すのはSUMPRODUCT関数で本来のこの関数の使い方です。 積和(内積?)を求めるものです。 ここの回答に良く使われるのは、複数条件に該当するものの合計や 件数算出ですが。 =SUMPRODUCT((B2:F2)*(B3:F3)) 第1引数と第2引数の数を合わせること。空白セルは0と扱ってくれる。 >数式がすごい事になっています 式の上では簡単になっても、コンピュタ処理はこちらの方が軽くなると言う保証は無い。私などには預かり知れない世界ですが。 本件は変わりないと予想しますが。 ーー 質問の主旨では、セルを列挙する関数でなく、B2:F2のように範囲を示す引数の関数が無いか調べることです。 ーー VBAで計算させる方法もコードは簡単です。関数式はシートには出ません(設定されません)。
お礼
imogasiさん、回答ありがとうございます。 SUMPRODUCT関数は、今回初めて知りました。 この関数で、私のやりたい事が出来ました。 ありがとうございました。 今後ともよろしくお願いします。
- tom04
- ベストアンサー率49% (2537/5117)
No.1・3です! 何度もごめんなさい。 No.3で >No.1です! と書いていましたが、No.2の間違いでした。 No.1のSaKaKashiさまにもこの場を借りて謝らなければなりません。 どうもごめんなさい。 ところで参考にならないかもしれませんが、 ↓の画像のように表を並べ替えた場合は前回の関数が使えますので 無理矢理持ってもってきました。 まず、元データを範囲指定し → コピー → 形式を選択して貼り付け ↓表の並びですと C11セルに =SUMPRODUCT((A6:A10<>"")*(C6:C10),B6:B10) という数式を入れています。 あまり参考にならないと思いますが、 何度も失礼しました。m(__)m
- tom04
- ベストアンサー率49% (2537/5117)
No.1です! 前回は大きく外しておりました。 データが縦に並んでいないとまともな結果が出ません。 前回の回答は無視してください。 どうもごめんなさい。m(__)m
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 画像以外にデータはないという前提での回答になります。 色々方法はあるかと思いますが・・・ 一例です。 G3セルを =SUMPRODUCT((B3:F3<>"")*(B2:F2)) としてみてください。 希望に近い形にならないでしょうか? 尚、エラー処理はしていません。 以上、参考になれば幸いです。m(__)m
- SaKaKashi
- ベストアンサー率24% (755/3136)
その程度なら複雑でもなんでもないですけど。 式が面倒だというなら、A4に小計,B4にB2*B3,同様にC4からF4に式を入れます。 G3には=SUM(B4:F4)
お礼
SaKaKashiさん、回答ありがとうございます。 SaKaKashiが、教えて下さった事は、とてもいい考えですね。 ですが私の、質問に不備がありまして、 表を少なく書いていますが A3の下にも、ずら~っと表がありまして A4に数式を入れる事ができません。 でも、回答して頂いて感謝してます。 ありがとうございました。 今後とも宜しくお願いします。
お礼
tom04さん、回答何度もありがとうございます。 私の、やりたい事が出来ました。 こんな、関数があるの知りませんでした。 すごい便利な関数ですね。 tom04さんには、以前から色々教えて頂いて感謝しております。 ありがとうございました。 今後とも、よろしくお願いします。