• 締切済み

Excel 非表示の列を飛ばして合計できる関数ってありますか?

Excelで、非表示にした列をのぞいて合計する関数はありますか? 例えば、A1からE1まで数値が入っていて、C列が非表示になってるとします。 残りのA1,B1,D1,E1だけを合計できる関数ってありますでしょうか?

みんなの回答

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

#1です。 ユーザー定義関数の修正版です。 Function miesum(ByVal r As Range) As Variant Dim c As Range For Each c In r If c.EntireColumn.Hidden = False And c.EntireRow.Hidden = False Then miesum = miesum + c.Value Next End Function 非表示は行列ともありえますので・・・。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

オートフィルタで抽出した結果非表示になっているのなら SUBTOTAL関数 が使えますが、手作業で非表示にした場合は使えないようです。 http://www.fujicom.co.jp/salon/it_info/44/44.html ユーザー定義関数を作ってみました。 miesumの変数の型をVariant型にしていますが、適切な型があったら 変更してください。 Function miesum(ByVal r As Range) As Variant Dim c As Range For Each c In r If c.EntireColumn.Hidden = False Then miesum = miesum + c.Value Next End Function

pinponpanx
質問者

お礼

関数ではできないのですね。 ありがとうございました。

関連するQ&A

  • 関数で「C列の表示が1ならばD列の数値を合計

    エクセルで「C列の表示が1ならばD列の数値を合計する」関数を教えて下さい。   C         D   1        125            234   1        554            251   合計      679 上記のような場合の合計の数値を計算させたいのですが、どのような関数になりますでしょうか。

  • エクセルでの関数

    エクセルで下記を行いたいのですが、関数でどのようにすれば良いでしょうか。(関数で困難であればVBAでも良いです) A列で同じ名称の分に対して、それと同じ行のD列とE列の数値の合計を それぞれのセルに表したいのですがどのようにすれば良いでしょうか? 例えばA6に北海道のD列E列合計106.5、A7に岩手のD列E列合計16.5、 A8に山梨のD列E列合計29を表したいです。   A    B   C   D  E 1 北海道 文章A 数値1  2 24.5  2 北海道 文章B 数値2  4  50 3 北海道 文章C 数値3  6  20 4 岩手  文章D 数値4 11.5  5 5 山梨  文章E 数値5  25  4

  • エクセル関数 1行抜かした列の合計

    初心者です。 エクセルで表を作成しているのですが・・・ A1とA2は結合されています。 C2、D2、E2~ には点数を入力していきます。 B2に2行目の合計を出したいのですが、 その際、A1・A2の結合部分は抜かした合計を出したいのです。 C2からドラッグすればいいのかもしれませんが、 何列まで入力するか未定なので、 何か関数の入力の仕方があれば教えていただきたいです。 よろしくお願いします。

  • ExcelでのINDIRECT関数の使い方について

    Excelの関数についてお伺いしたいと思います。現在、図のような表があり、A2, C2, E2を合計したいと思っております。条件として; 1) 列を頻繁に挿入するものの、常にA2, C2, E2を合計したい(セルがずれてしまっては困る) 2) B列やD列には他の数値が入るため(列が連続しない)、A2:E2ということができない これを解決するためにA8に"A2,C2,E2"と入力し、A9に=SUM(INDIRECT(A8)と記入したのですが、#REF!というエラーになってしまいます。この場合、どのようにIndirect関数を使えばよいのでしょうか。またそもそもIndirect以外の有効な関数を使うべきなのでしょうか。教えていただきたく、よろしくお願い致します。

  • Excelの関数について

    Excelの関数について 私のExcelは2003です。 表を作っていて A列とB列に数値を入れてその合計をC列に自動的に出すようにするのは C列に「=SUM(A3,B3)」と入れますよね? 1日数回のデータを取り A列とB列に数値を入力し 1ヶ月ほどデータを取り続けるので その分C列に入れた関数を下へセルの右下にポインタを合わせて十字の記号を出して 下へ関数を入れたのですが その場合C列には0と表示されますよね? これは防げないものなのですか? 後、そのC列に表示された合計値を 次の行のA列に表示させたいのですが そういう関数はありますか? C列の合計値に次の数を足して、合計値をどんどん増やしていくので 例えばC1の値をそのままA2に表示。 C2の値をそのままA3に表示 C5の値をそのままA6に表示としたいのですが 関数があったら教えてほしいです。

  • エクセルでA列、B列、C列、D列、E列に数値が入力されており、それぞれ

    エクセルでA列、B列、C列、D列、E列に数値が入力されており、それぞれの数値が重複しないように合計数値を計算したいのですが、何か良い方法は無いでしょうか? 例 A B C D E 1 5 12 6 13 13 2 7 13 7 14 14 3 16 8 20 5+12+6+13+13=49 5+12+7+13+13=50 よろしくお願いします

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

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

  • エクセルで合計を求めるために

    エクセルで合計の数値を求めたいです 状況としては A列に数字が入力されています B列に入力があったものだけの合計をC1に表示させたいです 例としては A列 B列 100  1 150 200 250  山   この場合の合計をC1に100+250=350 B列の入力内容は状況によって変わります 現在はC1=IF(A1="","",B1)という関数を別の箇所に作って、それの合計を出させていますが、出来れば別の箇所に計算式を作らずにすむ方法を教えてください。お願いします

  • Excelにて列の一番下にある数値を表示する関数

    質問させていただきます。 エクセルの関数で「○列に入力されている数値の中で常に一番下にある数値を表示する」関数などありますでしょうか? 例えば B列に数値を入力していき、一番下?最終行?にある数値を自動で表示させたいです。下の例では「80」をとあるセルに表示させたいです。  A  B  C  D  ・・・・・ 1  100 2   99 3  150 4   80 5 6 ・ ・ =MAXという関数は見つけることはできたのですが・・・ =MAXの関数では、最大値しか表示できないので・・・ 色々と調べてみたのですが、調べ方が悪いのか探し出せませんでした。 お手数ですがよろしくお願いします。

  • If関数で合計をしたい

    A B C D E 1 1 11 12 13 2 1 10 20 30 3 0 21 22 23 4 0 31 32 33 10 1 22 if関数で B10が1ならC列の1の合計を出したい 11 0 52      B11が0ならC列の0の合計を出したい     ご指導願います

専門家に質問してみよう