「夫を成功」へ導く妻の秘訣 座談会

お世話になります。

今Excelで、A1~A100とB1~B100まで数値が入っています。
セルC1に「=A1×b1」、C2に「=A2*B2」…C100に「=A100*B100」と入力しました。
そしてセルC101に「SUM(C1:C100)」と入力して合計を出しました。
(実際はもっと複雑な計算なのですが、説明の為に簡略化しています)

そうすると、計算結果セルが多く発生するためファイルサイズが莫大になってしまうのと、それを数千行×6列以上を一気に計算するとXPのリソースが足りないと出て計算できません。
なので2~3列ずつ何回も数式コピペを繰り返すことになっています。

そこで【別セルに掛け算をしてから全部SUMで足す】のではなく【1つのセルに掛け算とSUMを組み込む】という事を考えて
=SUM(A1*B1+A2*B2+・・・+A100*B100)を
を入力しようとしたのですが、数式が長すぎて四苦八苦です。

この式、なんとか簡略化できませんか?

このQ&Aに関連する最新のQ&A

A 回答 (4件)

積の合計なら


=SUMPRODUCT(A1:A100,B1:B100)
でいいのでは?
    • good
    • 1
この回答へのお礼

有難う御座いました。
参考にさせていただきます。

お礼日時:2009/02/18 08:24

回答はNo.1さんのとおりとして、


ひとつ突っ込ませて下さい。
SUM関数の使い方が間違ってます。
いや結果は正しいのですが、
=SUM(A1*B1+A2*B2+・・・+A100*B100)
とするなら=SUMは必要ありません。
=A1*B1+A2*B2+・・・+A100*B100
と同じです。正しいSUM関数の使い方は、
=SUM(A1*B1,2*B2,・・,100*B100)
です。
    • good
    • 0
この回答へのお礼

御解答有難う御座いました。
焦っていたのか記入ミスをしました。
Excelの数式はちゃんとなっています。

お礼日時:2009/02/18 08:27

一般的には SUMPRODUCT関数ですね

    • good
    • 1
この回答へのお礼

御解答有難う御座いました。

お礼日時:2009/02/18 08:26

一例です。


=SUM(A1:A100*B1:B100)として、入力完了時にshift+ctrl+enterキーを同時押下して下さい。
    • good
    • 0
この回答へのお礼

shift+ctrl+enterキーを同時押しというのは初めて知りました。
有難う御座いました。

お礼日時:2009/02/18 08:26

このQ&Aに関連する人気のQ&A

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

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

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

Qエクセル SUM関数

超初心者です。
SUM関数が合計を計算するための関数だとわかっているのですが、引き算やかけ算をさせてはダメなんですか?
たとえば、
     =SUM(A1-A2*A3)
のような式を入れても、ちゃんとした数値(答え)が出てきてると思うのですが・・・(ーー;)

Aベストアンサー

意味が異なるだけで、「ダメ」ではないと思います。

=A1-A2*A3 も =SUM(A1-A2*A3) も同じ結果(答え)になりますが、
=A1-A2*A3 は、「A1-A2*A3 を計算した答えを求めなさい。」という意味で、
=SUM(A1-A2*A3) は、「A1-A2*A3 の計算し、さらにその答えの合計を求めなさい。」という意味になります。

細かいことをいえば、計算式を多量に利用しているファイルを作成した場合などに、A1-A2*A3 ですでに計算結果がでているにもかかわらず、さらに SUM でその答えを合計するという余計な計算を行うために、実行に時間がかかったりする可能性はあります。
また、複雑な計算式を作成した場合などは、ちょっとしたことで思うような計算結果が出ないこともありますので、できれば、意味を考えた式を作成されることをお勧めします。

もちろん、見た目はおかしくても、=A1-A2*A3 よりも =SUM(A1-A2*A3) の方が、自分の意図にマッチするというのであれば、=SUM(A1-A2*A3) の方を利用すべきと考えられると思います。

意味が異なるだけで、「ダメ」ではないと思います。

=A1-A2*A3 も =SUM(A1-A2*A3) も同じ結果(答え)になりますが、
=A1-A2*A3 は、「A1-A2*A3 を計算した答えを求めなさい。」という意味で、
=SUM(A1-A2*A3) は、「A1-A2*A3 の計算し、さらにその答えの合計を求めなさい。」という意味になります。

細かいことをいえば、計算式を多量に利用しているファイルを作成した場合などに、A1-A2*A3 ですでに計算結果がでているにもかかわらず、さらに SUM でその答えを合計するという余計な計算を行うために、実...続きを読む

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

QExcelの関数を簡素化する方法(質問1・2)

Excelの関数で質問があります。できるだけ一つのセルに計算をまとめたいのですが、

■質問1:データの最も優勢な値をカウントする計算
例えば、下のようなデータがあったとします。(a~cはデータ項目。1~5はデータ番号。)

  a  b   c
1 50 100  84
2 37 11   56
3 64 39   61
4 87 47   70
5 73 71   44

同じデータ番号の系列で、a~cの中で最も高い数値をカウント「1」とします。それ以外は「0」とします。
例えば、aの1・bの1・cの1、の中の最高値という具合です。
そして、最終的に「同じデータ項目の最高値のカウント数/データ番号のトータルカウント数」の値を計算します。
例えばaの場合、「同じデータ項目の最高値のカウント数」は、データ番号の3、4、5が最高値なので「3」となり、「データ番号のトータルカウント数」はデータ番号が5個あるので「5」となり、「3/5」となります。
このような計算を一つのセルにする関数はあるでしょうか?
今は、最高値のカウント数を計算するセル、
「=IF(MAX(a1:c1)=a1,1,0)」
「同じデータ項目の最高値のカウント数/データ番号のトータルカウント数」を計算するセル、
「=SUM(a1:a5)/COUNT(a1:a5)」
に分かれています。(ここでいう「a1」「c1」「a5」とは例にあるデータ項目とデータ番号のことです。)

■質問2:あるデータ区間に当てはまるデータをカウントする計算
例えば、例のa1を30~70に当てはまった場合、「1」とし、それ以外を「0」とする計算なんですが、今は
「=IF(30<=a1,IF(a1<=70,1,0),0)」
という関数を使っていますが、これ以上簡単にできませんか?

回答よろしくお願いします。

Excelの関数で質問があります。できるだけ一つのセルに計算をまとめたいのですが、

■質問1:データの最も優勢な値をカウントする計算
例えば、下のようなデータがあったとします。(a~cはデータ項目。1~5はデータ番号。)

  a  b   c
1 50 100  84
2 37 11   56
3 64 39   61
4 87 47   70
5 73 71   44

同じデータ番号の系列で、a~cの中で最も高い数値をカウント「1」とします。それ以外は「0」とします。
例えば、aの1・bの1・cの1、の中の最高値という具合です。
...続きを読む

Aベストアンサー

◆お役に立てばいいのですが
>=SUMPRODUCT((COUNTIF(OFFSET($A1,ROW(1:5)-1,,,4),">"&A1:A5)=0)*(A1:A5<>""))/COUNT(A1:A5)
★OFFSET関数は、 OFFSET(基準,行数,列数[,高さ][,幅]) です
★よって、回答しましたこの式はご指摘のように、「幅」ですから「3」ですね。訂正します、ごめんなさい。
◆なお、ROW(1:5)-1 の部分は、OFFSET($A1,{0;1;2;3;4},,,3) このようにも書けます。

>COUNTIF(OFFSET($A1,ROW(1:5)-1,,,3),">"&A1:A5)
・数式バーでの式の上の部分をマウスで指定して、F9 を押してください
・{2;1;0;0;0} と表示されます。
・これは、1行目では50,100,84 とあり、A列の50より大きい数字が2つあるという意味です。
・「0」はその数字より大きい数字がない。すなわち、その行で一番大きな数字となります。

>COUNTIF(OFFSET($A1,ROW(1:5)-1,,,3),">"&A1:A5)=0
・この部分を指定して、F9 を押してください
・{FALSE;FALSE;TRUE;TRUE;TRUE} 行のうちの最大値はTRUE表示の、3,4,5行目になります
・(A1:A5<>"") は、A1:A5 の内、今回はありませんが未入力の行を排除しています。

>=(30<=A1)*(A1<=70)
・この式の部分も数式バーで(30<=A1)と(A1<=70)を別々に範囲指定して、F9 を押してください。
・TRUEとTRUEなら「1」、TRUEとFALSEなら「0」、FALSEとFALSEなら「0」になります
・ご推察のとおり、AND条件になります
・ついでに、* を + にして同じように確認してください。OR条件になることが分かります。
・- は確認していませんので、回答は控えさせていただきます。

◆お役に立てばいいのですが
>=SUMPRODUCT((COUNTIF(OFFSET($A1,ROW(1:5)-1,,,4),">"&A1:A5)=0)*(A1:A5<>""))/COUNT(A1:A5)
★OFFSET関数は、 OFFSET(基準,行数,列数[,高さ][,幅]) です
★よって、回答しましたこの式はご指摘のように、「幅」ですから「3」ですね。訂正します、ごめんなさい。
◆なお、ROW(1:5)-1 の部分は、OFFSET($A1,{0;1;2;3;4},,,3) このようにも書けます。

>COUNTIF(OFFSET($A1,ROW(1:5)-1,,,3),">"&A1:A5)
・数式バーでの式の上の部分をマウスで指定して、F9 を押してください
・...続きを読む

Qエクセル 表を大きく、紙いっぱいに印刷したい

エクセルで表を作りました。
印刷プレビューで確認したところ
用紙に対して表が小さく見栄えがしません。

一つ一ついじればできると思いますが、
簡単に、
用紙いっぱいにフォントも大きくし、表も大きくし、
印刷するやり方はありますか。
教えてください。

Aベストアンサー

CtrlキーとPのキーを同時に押すと「印刷」ダイアログが呼び出せます。その状態でAltキーとWのキーを同時に押すと「印刷プレビュー」が表示されますので、印刷のイメージがつかめます(必ずしもプレビュー通りには印刷されませんが)
印刷プレビュー画面の上にある、設定のボタンを押してあげれば、余白を少なくしたり、拡大縮小印刷をパーセンテージを指定しておこなえたりします。いずれにせよ、プレビューで確認しながら拡大率を決めていけばいいと思います。なお、「拡大縮小印刷」のところに「次のページ数に合わせて印刷をする」というチェックをいれて横1×縦1にしてあげれば自動で拡大縮小印刷ができる場合がありますが、やってみればわかりますが、特に縮小印刷の場合小さくなりすぎたりする場合もあります。

QExcelで[表1]にあって、[表2]にないものを抽出する関数

Excelで[表1]にあって、[表2]にないものを抽出する関数

例)[表1]   [表2]
   A社     A社
   D社     D社
   R社     P社
   P社     R社
   D社
   F社
   F社

上記は簡単に書きましたが、表1に重複するものも含め、300社程度あるなかで
表2にリストアップされていない会社を見つける関数やその他方法論があれば
ぜひ教えてください!
(例でいえば、F社を見つける方法です。)

抽出するのは別シートでも、同じシートでも構いません。

Excel2003でも対応できるものであれば、なお嬉しいです。

よろしくお願いします。

Aベストアンサー

Countif関数で同じものがいくつあるか数えさせます。
   A   B        C
  [表1]表2にある数   [表2]
   A社          A社
   D社          D社
   R社          P社
   P社          R社
   D社
   F社
   F社
だとして
B列に =Countif(C:C,A2)
と入れて下までコピィすれば 表2に同じものがいくつあるか出ますので
0 がないものです。

Q【エクセル】IF関数  AまたはBならばCと表示

引き続き、お世話になります。

IF関数の使い方について教えてください。

A1セルが「1」ならば B1セルに「●」を表示 ←これは出来ます。

A1せるが「1」または「6」ならば B1セルに「●」を表示←これができません。

ANDを組み合わせるのですよね???
どのようにすればいいか、ご存じの方教えてください。

Aベストアンサー

B1のセルに、以下の数式を入力します。

=IF(OR(A1=1,A1=6),"●","")

Qエクセルで縦書きに設定した時に、数字は横書きにしたい。

エクセルで、セルを縦書きに設定した場合に、全角、半角問わず数字だけは横書きにしたいんですが出来ますか??教えてくださいm(_ _)m

Aベストアンサー

セル単位で簡単に設定する方法はありません。文字単位で設定する必要があり、すこし面倒ですが、それでもよければ....

(1)対象セルの「セルの書式設定」-「配置」タブで「方向」を(「縦書き」ではなく)「-90」度に設定する

(2)対象セルを編集状態にして、数字以外の文字列を選択してから「フォント」欄のフォント名の先頭に「@」をキー入力する(例:「MS Pゴシック」→「@MS Pゴシック」)

(3)数字以外の文字列すべてに(2)の操作を繰り返す

以上で、縦書きセルの中で、数字だけが横書き状態となります。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QPDFを横にして保存するには?

スキャンしたものをPDFにして送りたいのですが、
プリンタの関係で、横になってPDFになります。
これを90度回転して、再度保存したいのですが、
可能でしょうか?
手元にはアクロバットリーダーと
瞬間PDF ZEROというフリーソフトがあります。
宜しくお願い申し上げます。

Aベストアンサー

PDF-XChange Viewerをインストールすればこの作業は出来ます。

http://www.forest.impress.co.jp/lib/offc/document/pdf/pdfxchange.html


ドキュメント→ページの回転→ここで方向、ページ等を決めてOK
ファイル→名前を付けて保存
これで回転できます。

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?


人気Q&Aランキング