人に聞けない痔の悩み、これでスッキリ >>

エクセルで合計を求める際の質問がございます。
以下の例をご覧ください。

行 A B

1 5 4.2
2 4 5.2
3 8 2.3
4 7 6.9

上の様な配列のとき、
=SUM ($A1*(B1)+$A2*(B2)+$A3*(B3)+$A4*(B4))
という内容の計算を入力したい場合、現在の小生の知識ではいちいち同じ式を全て手で入力しなければならず、その分誤入力の危険性も高くなります。

式(例:$A1*(B1))を入力、範囲を選択すればその式が対応するセルにそれぞれ当てはまってくれるような入力方法はないでしょうか。

C行に一回=$A1*(B1)と入力すればその合計を普通のオートサムで求められますが、行が増えて後々困るのでしたくありません。
もしよろしければお知恵を拝借したく存じます。

A 回答 (4件)

ちょっと良く分からないのですが、



=SUMPRODUCT($A1:$A4,B1:B4)

みたいな事ですか?

(蛇足ですが、行・列の認識が逆のようです。Cは列(縦方向)です。)
    • good
    • 0
この回答へのお礼

本当にありがとうございます。うまく動作し大変助かりました。
うまく説明できていないのは自覚しておりましたが説明力がないのでご勘弁ください。
行列の誤認お恥ずかしい限りです。ご指摘いただきありがとうございます。

SUMPRODUCTは乗算のみかと存じますが、加算減算、また除算も組み合わせたりできる同じような関数をご存知でしたらご教示頂ければ幸いです。

お礼日時:2012/10/18 13:33

はずかしー


No.3の方が詳しく書いて下さってますのでそちらを参考にしていただければいいのですが、

>=SUM(A1*B1+A2*B2・・・

とか何で書いたんだろう。
足し算してるのでSUMなしで

=A1*B1+A2*B2・・・

とか

=SUM(A1*B1,A2*B2・・・

とかですよね。
一応訂正しておきます。
    • good
    • 0
この回答へのお礼

訂正してくださり勉強になりました。

お礼日時:2012/10/20 03:03

横入り、失礼します。


確実に余計な話題ですので、混乱しそうであればスルーなさってくださいませ。


> 加算減算、また除算も組み合わせたりできる同じような関数

加減算に関しては言うまでもないと思いますが、一応。
 =SUM(A1:A4)+SUM(B1:B4)
 =SUM(A1:A4)-SUM(B1:B4)
で可能ですね。

乗除算の場合は、配列計算の考え方が必要です。
その内、よく使う(と思われる)乗算に関してはSUMPRODUCT関数が用意されています。
これについては説明がすでにありますので、割愛させていただいて・・

後々、エクセルの勉強を楽しんでいただくために、
あえて配列計算のサワリだけ紹介します。
指定の仕方はそんなに難しくありません。
A列×B列(乗算)の合計を入れたいセルに
 =SUM(A1:A4*B1:B4)
と入力し、Shift+Ctrl+Enter で確定してやります。
数式バーには {=SUM(A1:A4*B1:B4)} と表示されているはずです。
これで、上から対応するセル同士の乗を合計することができます。
SUMPRODUCT関数 =SUMPRODUCT(A1:A4,B1:B4) と同じ結果が出るはずです。

同様に加減算・除算でも同じように配列数式を組めます。
 =SUM(A1:A4/B1:B4) Shift+Ctrl+Enter ⇒ {=SUM(A1:A4/B1:B4)}
と言った具合で、除の合計を出してくれます。


ですが・・紹介してアレなんですが、恐らくまだご存知無くて良い手法かもしれません。
数式の読みやすい書き方、基本の関数の効率的な使い方などなど、
色々勉強してからでも遅くはありません。
こんなやり方もあるんだなぁ程度に、片隅にちょこっとだけ入れておいてくださいませ。
    • good
    • 0
この回答へのお礼

ありがとうございます。
今は楽しく勉強している最中です。すごく参考になります。

お礼日時:2012/10/20 02:54

>SUMPRODUCTは乗算のみかと存じますが



そうですね。SUMPRODUCTは積の和を出す数式です。
商の和とかとなると、配列数式とかになったりするかなぁ、とも思いますが・・・
配列は中級以上な感じですので、あまり言及せずにおきます。興味があるようでしたら検索してみてください。

数式の組み方は経験を重ねれば効率よくできるようになります。
が、まずは、数式の入力から少し整理されたほうがいいと思います。

=SUM ($A1*(B1)+$A2*(B2)+$A3*(B3)+$A4*(B4))

は、B列セルの()はいりません。
横にコピーとかしないのでしたら、A列セルに$もいりません。
(一応提示した式には入れておきましたが。)
=SUM(A1*B1+A2*B2・・・
みたいな感じでも大丈夫です。
    • good
    • 0
この回答へのお礼

重ね重ねありがとうございます。
配列数式ですか、興味はありますが難しそうですね。
時間があれば調べてみます。

もっと数式の入力を整理する努力をしようと思います。
ありがとうございます。

お礼日時:2012/10/18 14:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルでのシグマ計算

エクセルでのシグマ計算はどうすればよいのでしょうか?また,エクセルで不可能な場合,フリーソフトでシグマ計算ができるものはあるのでしょうか?

Aベストアンサー

マクロは初心者ですが、下記のようにマクロを書きますと、a1セルに、1から100までの平方の和が出ます。数列の式を目的のものに書き換えると、様々な数列の和が計算されます。



Sub test()
Dim i As Single   '単精度数値
Dim s As Single   '単精度数値

s = 0        '合計を初期化する

For i = 1 To 100  '1から100までの数列の和
s = s + i ^ 2  '数列の式
Next
Range("a1") = s   'a1セルに合計sを書き込む

End Sub

Qエクセル STDEVとSTDEVPの違い

エクセルの統計関数で標準偏差を求める時、STDEVとSTDEVPがあります。両者の違いが良くわかりません。
宜しかったら、恐縮ですが、以下の具体例で、『噛み砕いて』教えて下さい。
(例)
セルA1~A13に1~13の数字を入力、平均値=7、STDEVでは3.89444、STDEVPでは3.741657となります。
また、平均値7と各数字の差を取り、それを2乗し、総和を取る(182)、これをデータの個数13で割る(14)、この平方根を取ると3.741657となります。
では、STDEVとSTDEVPの違いは何なのでしょうか?統計のことは疎く、お手数ですが、サルにもわかるようご教授頂きたく、お願い致します。

Aベストアンサー

データが母集団そのものからとったか、標本データかで違います。また母集団そのものだったとしても(例えばクラス全員というような)、その背景にさらならる母集団(例えば学年全体)を想定して比較するような時もありますので、その場合は標本となります。
で標本データの時はSTDEVを使って、母集団の時はSTDEVPをつかうことになります。
公式の違いは分母がn-1(STDEV)かn(STDEVP)かの違いしかありません。まぁ感覚的に理解するなら、分母がn-1になるということはそれだけ結果が大きくなるわけで、つまりそれだけのりしろを多くもって推測に当たるというようなことになります。
AとBの違いがあるかないかという推測をする時、通常は標本同士の検証になるわけですので、偏差を余裕をもってわざとちょっと大きめに見るということで、それだけ確証の度合いを上げるというわけです。

Qエクセルで計算すると2.43E-19などと表示される。Eとは何ですか?

よろしくお願いします。
エクセルの回帰分析をすると有意水準で2.43E-19などと表示されますが
Eとは何でしょうか?

また、回帰分析の数字の意味が良く分からないのですが、
皆さんは独学されましたか?それとも講座などをうけたのでしょうか?

回帰分析でR2(決定係数)しかみていないのですが
どうすれば回帰分析が分かるようになるのでしょうか?
本を読んだのですがいまいち難しくて分かりません。
教えてください。
よろしくお願いします。

Aベストアンサー

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるための指数表記のことですよ。
・よって、『2.43E-19』とは?
 2.43×1/(10の19乗)で、
 2.43×1/10000000000000000000となり、
 2.43×0.0000000000000000001だから、
 0.000000000000000000243という数値を意味します。

補足:
・E+数値は 10、100、1000 という大きい数を表します。
・E-数値は 0.1、0.01、0.001 という小さい数を表します。
・数学では『2.43×10』の次に、小さい数字で上に『19』と表示します。→http://ja.wikipedia.org/wiki/%E6%8C%87%E6%95%B0%E8%A1%A8%E8%A8%98
・最後に『回帰分析』とは何?下の『参考URL』をどうぞ。→『数学』カテゴリで質問してみては?

参考URL:http://ja.wikipedia.org/wiki/%E5%9B%9E%E5%B8%B0%E5%88%86%E6%9E%90

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるた...続きを読む

QExcelで微分をしたいのですが。。。

題意のままですが・・・(´;ω;`)ウッ…
Excelを使って微分の計算をすることは可能でしょうか・・・?
またExcelで使えるツールなどでももちろんOKです。
ご存知の方が見えましたらお助けお願いします。。。

Aベストアンサー

>エクセルを使って微分の計算をする
とはどういうことでしょうか。
たとえば、(1)y=Xの2乗の導関数のy=2Xを求めるということでしょうか。これは「数式処理」に該当し、エクセルは値を扱う(四則演算が中心)ものなので、お門違いの要求です。他のソフト(ただし原理的にどんな数式・関数に対しても求まるソフトはないようですが)を探しましょう。ただアドインという形だとプログラムを組んで何でもエクセルにぶち込めるようなので、そういう例があったとしたら、話は別です。
積分の原始関数を求めるというのも似たパターンでしょう。
そうではなくて
(2)上記の例で、導関数を、人間が!
(A)エクセルの関数式で与えてやり、
(B)またはその導関数の近似値を与える関数式を与えて
やるなら、
後はエクセルは「電卓の計算を繰り返し高速計算するような」ものですから可能と思います。
ただ1000個の数の足し算をするという風には簡単にいかないケースがあるとは思いますので、勉強がひつようでしょう。収束や近似や速度に合う条件・計算法が必要でしょうから。
y=Xの2乗の(1、1)点の接線の勾配を出すなら
2X1=2で簡単です。
微分でなくて、定積分なら数値計算法を質問する意味はあると思いますが。
エクセルは四則演算といっても初等的三角関数、対数
、行列計算、ガンマ関数などもあります。
上記は原則論ですが、エクセルは全世界の俊秀も使っているとおもわれ、いろいろな機能を付加されているかも知れないので、最低WEB照会程度はして、よく調べてください。またエクセルを入り口や出口の入力・結果表示の道具として使っているケースは多いようですから、そういうケースは「エクセルでできる」に該当しないと思います。

>エクセルを使って微分の計算をする
とはどういうことでしょうか。
たとえば、(1)y=Xの2乗の導関数のy=2Xを求めるということでしょうか。これは「数式処理」に該当し、エクセルは値を扱う(四則演算が中心)ものなので、お門違いの要求です。他のソフト(ただし原理的にどんな数式・関数に対しても求まるソフトはないようですが)を探しましょう。ただアドインという形だとプログラムを組んで何でもエクセルにぶち込めるようなので、そういう例があったとしたら、話は別です。
積分の原始関数を求...続きを読む

Qエクセルでシグマのグラフ

エクセルを使って、

f(x) = Σ{(1/n) * sin( nπ/ 2) * cos (2nπx / L) }
(足し合わせるnの範囲は1~20まで、Lは定数です)

というグラフを横軸をx、縦軸をf(x)にとって
-L <= x <= L の範囲で描きたいのですが、
どうしたら良いのか分かりません。教えて下さい。

Aベストアンサー

B1からU1まで1、2、・・・20の連番を入力する

B2に =SIN(B$1*PI()/2)*COS(2*B$1*PI()*$A2/L)/B$1 (Lは定数を自分で入力する)を入力して右にコピー、
V2セルは合計 =SUM(B2:U2) を入力。

A2,A3・・・には範囲の数値 -L、・・・、0、・・・L を適当な行分入力。
それらの行に2行目の式をフィルハンドルでコピーする。
出来上がった表のA列とV列のデータでグラフを描く。
グラフは散布図の折れ線でつないだマーカーなしが良いでしょう。

Qエクセル・・色の着いたセルの個数を数える関数はある?

エクセルの表内で塗りつぶしされているセルだけを数える様な関数はありますか?
セルには文字や数値は入力されておらず、塗りつぶしているだけです。
よろしくお願いいたします。

Aベストアンサー

こんにちは。

ユーザー定義関数で作ってみました。Ver4 マクロ関数で十分だと私は思いますが、Ver 4 マクロ関数ではケシカランというような方?は、以下のようなVBAでの解決方法が便利かなって思います。

VB Editor の標準モジュールに貼り付けてください。(挿入-標準モジュール)

なお、一般のブックの標準モジュールのユーザー定義関数に、Public キーワードをつけたところで、グローバル関数になるわけではありませんので、もしその点に不安のある方は、マニュアル等で、確認されたほうがよいかもしれませんね。

なお、以下は、引数のインデックスに0を入れると、配列出力するようにしてあります。

'------------------------------------
Function ColorCellCount(範囲 As Range, Optional インデックス As Integer = 1, Optional パターン As Integer = 0)
  Dim myRng As Range
  Dim myIndex As Integer
  Dim myPattern As Integer
  Dim myColor() As Integer
  Dim Ret() As Double
  Dim c As Range
  Dim i As Long
  Dim j As Long
  Set myRng = 範囲
  myIndex = インデックス
  myPattern = パターン
For Each c In myRng
   On Error Resume Next
   If myPattern = 0 Then
     i = WorksheetFunction.Match(c.Interior.ColorIndex, myColor, 0)
   Else
     i = WorksheetFunction.Match(c.Font.ColorIndex, myColor, 0)
   End If
   If i = 0 Then
     ReDim Preserve myColor(j)
     ReDim Preserve Ret(j)
      If myPattern = 0 Then
       myColor(j) = c.Interior.ColorIndex
      Else
       myColor(j) = c.Font.ColorIndex
      End If
      Ret(j) = 1
     j = j + 1
     On Error GoTo 0
     Else
      Ret(i - 1) = Ret(i - 1) + 1
   End If
  Next
  If myIndex <= 0 Then
   ColorCellCount = Ret()
  ElseIf myIndex > UBound(Ret) + 1 Then
   ColorCellCount = Ret(UBound(Ret()))
   Else
   ColorCellCount = Ret(myIndex - 1)
  End If
  Set myRng = Nothing
End Function

ワークシート上での使い方は、

A列
色付き
色なし
色なし
色付き
色付き

=ColorCellCount(A1:A5, 1 )

とすれば、上から数えて、1番目の色のセルの数が出ます。

=ColorCellCount(A1:A5, 2 )
を入れれば、色なしのセルの数が出ます。

=SUMPRODUCT(ColorCellCount(A1:A5, 0 ))

とすれば、全部の合計が出ます。

なお、
=ColorCellCount(A1:A5,1,1)

とすれば、文字の色を数えます。

こんにちは。

ユーザー定義関数で作ってみました。Ver4 マクロ関数で十分だと私は思いますが、Ver 4 マクロ関数ではケシカランというような方?は、以下のようなVBAでの解決方法が便利かなって思います。

VB Editor の標準モジュールに貼り付けてください。(挿入-標準モジュール)

なお、一般のブックの標準モジュールのユーザー定義関数に、Public キーワードをつけたところで、グローバル関数になるわけではありませんので、もしその点に不安のある方は、マニュアル等で、確認されたほうがよいかもし...続きを読む

Qセル番号を返す関数

エクセルで、セル番号を返す関数はありますか??
セルの内容ではなくて、番号です。(A1、B3など)
調べてみましたがなかなか見つからなかったので、
わかる方教えてください。
宜しくお願い致します。

Aベストアンサー

文字として"C4"を返す。
=ADDRESS(ROW(C4),COLUMN(C4),4)

式を入力したセルの位置を文字列で返す。
=ADDRESS(ROW(),COLUMN(),4)

ADDRESSの3つ目の引数を変えると
$C$4
$C4
C$4
C4
の4つの形に出来ます。


人気Q&Aランキング