エクセルで数値のみを合計する方法

このQ&Aのポイント
  • エクセルで合計範囲内に数値と計算式がある場合、数値のみを合計する方法について教えてください。
  • 現在は、CTRLキーで数値のみを手動で範囲選択していますが、数値のセルが計算式に変わっても対応できるように、関数などで指定したいです。
  • 対象となる表は横に製品名、縦に日付があり、製品ごとの日々の生産数が入力されています。1週間毎に合計と全生産数の%を計算し、1月分の合計を表示したいです。
回答を見る
  • ベストアンサー

エクセル-計算式以外の数値のみを合計

 エクセルで、合計範囲内に数値と計算式がある 場合、数値のみを合計するにはどうしたらいいで しょうか。現在は、COTRLキーで、数値のみを 手動で範囲選択していすが、数値のセルが計算式に 変わっても対応できるように、関数などで指定を したいと思います。  対象となる表は以下の通りです。    *横に製品名・縦に日付、製品ごとの日々の   生産数を入力、1ヶ月分を1シートとする。    *さらに、1週間毎に2列挿入。1つは生産数    の合計、もう一つは全生産数の%。    *表の右端には製品ごとの1月分の合計を   表示←この部分に入れる計算式が質問内容です。   

noname#20023
noname#20023

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

ユーザー定義関数はいかがですか? ツール-マクロ-Visual Basic Editor 挿入-標準モジュール で、 Function nonFormula_Sum(ByVal 範囲 As Range)  Dim c As Range  Dim myTotal As Double  For Each c In 範囲   If VarType(c) = vbDouble Then    If Not c.HasFormula Then     myTotal = myTotal + c.Value    End If   End If   nonFormula_Sum = myTotal  Next c End Function 閉じたら、ふつうと同じ関数のように、 =nonFormula_Sum(A1:A10) というようにすればよいです。 関数名が、長くてわずらわしいようでしたら、置換して、変えてしまってくだ さい。最初のFunction の行と、最後から3行目を書き換えても良いです。

noname#20023
質問者

お礼

上手くいきました!! ユーザー定義関数は今まであまり使ったことがなかった のですが、大変勉強になりました。    ありがとうございます。

その他の回答 (1)

  • subri
  • ベストアンサー率28% (16/56)
回答No.2

A1から右に 1 2 =SUBTOTAL(9,A1:B1) 3 4 =SUBTOTAL(9,D1:E1) =SUBTOTAL(9,A1:F1) と入力してみてください。 C1とF1を小計、G1を総合計に見立てています。 SUBTOTALで引数を9にすると、範囲の合計を返しますが、 範囲にSUBTOTALで帰った合計のセルが含まれると、 それは無視します。

noname#20023
質問者

お礼

 ご回答ありがとうございます。 申し訳ありませんが、ちょっと希望している結果とは 異なるようです。私の理解不足だとは思いますが。

関連するQ&A

  • エクセルの簡単な計算式で・・・・

    初心者です。エクセルの表で、計算式・・縦合計の数式を 例=SUM(A5:A35)と入れており、その上部のセルに毎月異なる数値を打ち込んで自動計算していたのですが、先月から数値を打ち込んでも合計数値が変わらなくなってしまいました。(前月の合計数値のままです。) 合計数式の入ったセルをダブルクリックすれば正しい合計数値が現れるのですが、膨大な数の数式が入っている為、非常に時間がかかります。なぜこのようなことになったのかがまったく解りません。 どなたか以前の様に自動計算される方法を教えてください。 よろしくお願いいたします。

  • エクセル2013で合計値の計算について

    C2:J2に時間をB3:B17に日付がありC3:J17にランダムに数値がある表の中から200~500までの数値の合計値をC19に表示する方法を教えてください。 表を添付しますのでよろしくお願いします。

  • 一番近い左側のセルの数値で計算する関数

    なんて質問していいのか、いい言葉がわかりませんが・・・  日付  1  2  3  4  5  合計  ああ  20       10     30  いい 430       ●     一行目に「日付」、二行目に「ああ」、三行目に「いい」があるとして、「前日のいい」と「本日のああ」の合計を「本日のいい」の数値になるように計算したいのです。 ただし、「ああ」に毎日数値が存在するわけではありません。そして、「いい」も「ああ」に数値がない日は空白です。上の表で、黒丸の部分を出す関数とかありますか? そしてこの表は一か月分有り(日付)、ときどき「ああ」に数値がありそのつど「いい」に合計を出さなくてはなりません。本来ならすぐ左側の「いい」の数値と「本日のああ」の数値を足せばいいのですが、空白列があり、空白の頻度も決まっていませんのでやっかいです。マクロとかはわかりませんので、関数があれば教えて下さい。

  • エクセルの合計の計算についてです。

    エクセルの合計の計算で質問です。 たぶん簡単なことだと思いますが・・   X  Y A 125 130    30  14 B 100  85   100  15 C  30 200    40  45 このような表があった時、縦方向(X,Y) の合計を求めたいのですが、 1つずつとばして(125+100+30とか30+100+40など) 合計する場合の関数はどうなるのでしょう。

  • エクセルで2行毎の数値を合計したい

    表の中の2行毎の数値を関数で合計するやり方が分からない 例   A B C D 1  2 あ 1 3   2 4 い 5 5   3 6 う 2 7   4 上段計 7←これを関数で計算したい 下段計 9←これを関数で計算したい     

  • Excel_文字を数値に置き換えて計算する方法

    Excel2010使用です。 文字を数値に置き換えて計算したい場合、どのような関数を使えばよいかわからず困っています。 例えば、鈴木=10000、田中=15000、佐藤=30000  ・・・といった具合に数値を設定しておき、 表に人名を入力したら、それを特定の数値に置き換えてひと月分の合計を数値で出したいのです。 人名はB2~B32まで入る予定です。 合計はB33に出したいと思っています。 なるべくこれ以上表や列の挿入はせず、B33のみに計算式を入れて解決できれば理想だと思っております。 説明が下手で申し訳ありませんが、 Excelに詳しい方、お知恵をお貸しいただければと思います<(_ _)>

  • 2つの項目に分けられた数値の合計を出す方法

    2つの項目に分けられた数値の合計を出す方法 図Aのように、「トマト」かつ「日本」が10個・・・・という条件でデータがありますが、 図Bの形の表に作り変えたいです。 ?のところは「トマト」かつ「日本」の合計数を計算させて入れたいのですが、 どのような式を作ったらよろしいかどうぞ教えてください。 宜しく御願い申し上げます。

  • エクセル・単純に合計を出す・・

    表を作っています。 例えばセルを A1~A3,A4~A6,A7~A9 と結合させてそれぞれ数値を入力してます。 B列は結合無しでそれぞれ数値を入力しています。 A+Bの合計をC列に計算させます。 C1に関数を入力して、C2以降はコピーします。 単純に(A1+B1)にすると C1は正しく合計してくれるのですが コピーしたC2は(A2+B1)となってしまい Aが0として計算されてしまいます。 (A$1)と、してしまうと当然ですが C4以降の計算が狂います。 C4は結合されたA4~A6を見てほしいのです。 実際に作っている表は、もっと数が多いので 1つづつ計算では・・・ 何かよい方法はないでしょうか? よろしくお願いします。

  • エクセルの各項目別に合計を計算する表

    エクセルで計算する際に下記のような場合どういう風にすればいいでしょうか?? A 1000 B 2500 A 1200 C 1000 D 2000 C 1500 B 1500 A合計=? B合計=? C合計= D合計=? 上記のような感じで表があるとします。 そのときに【Aの数値だけを足す】【Bの数値だけを足す】というような、表計算式はどうやって作ればよいのでしょうか?? いろいろ探したんですが、わからなくて・・・ 分かりにくい説明かもしれませんがよろしくお願いします

  • エクセル 列の数値の合計の表示について、

    エクセル 列の数値の合計の表示について、 ごく基本的なことだと思いますが、教えてください。 例えばA列に上から順に数値を入れていき、その合計をB列に表示させるとします。 私のやり方はB列の計算式を=B1+A2としてこのコピーを、数値の数だけ下に下げることで目的を達しました。 すでにA列に数値が何個も入力している場合はこれで良いのですが・・。 ここから質問なのですが、例えばA列に現在10個数値がありB列に順番にその合計が出ているとします。 次にA列11行目に新規に数値を入力した時に、自動的にその合計がB列に出るようにしたいのです。 予めB列の数式のコピーを11行目以降に延ばしておくと、10行目の合計の数値が延ばした行まで並ぶので困っています。 よろしくお願いします。

専門家に質問してみよう