• ベストアンサー

EXCEL97のSUM関数で指定できるセル数

こんにちは。 タイトル通りなのですが、ヘルプを見ると30個までと書いてありました。 連続したセルなら指定可能なようなんですが、集計したいセルは1つ置きで、最大個数が今のところ100を越えています。 この場合、 1.30個ずつ小計する関数を入れた非表示のセルを作り、それを合計する。 2.VBAで計算し値だけを集計のセルに入力する。 どちらの方が良いのでしょうか? ちなみに2はまだ試した事が無いので、やり方等はこれからなのですが、2だと各々の値が入ったセルが更新されても、もう一度マクロを実行しないと再集計されないですよね。 けれど、作った表を客先にデータとして納品するときは、1だと渡してしまった後に向こうで変更してもらうときややこしかったりしないでしょうか。 上手く説明できませんでしたが、よろしくお願いします。

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

  • ベストアンサー
回答No.1

1つおきにってのが1行おきだと仮定します。力技で =A1+A3+A5+A7+A9+A11+A13 とする代わりに =SUMPRODUCT(A1:A14,ROW(A1:A14)-ODD(ROW(A1:A14))+1) と書きます。偶数行なら、式の中のODDをEVENに換えるだけ。 1列おきの場合、式のROWをCOLUMNに換えればいいような気がする なぁ。自分で検証してみてください。

WANKO_P
質問者

お礼

ありがとうございます。 エクセルはたまにしか使わない上に、今回はデータの量が多いので何とかならないかと頭を痛めていました。 SUMPRODUCTのヘルプを読んでもあまりピンと来なかったのですが、実際にやってみたら使えそうでした。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

(1)VBAでは、おっしゃるような欠点はあります。 データチェンジのイベントで、即座に計算させる手はあるかも知れませんが。 (2)正確に1行おきの場合は、「配列数式」で求められます。 A1:A7の例です。 =SUM(IF(MOD(ROW(A1:A7),2)=0,A1:A7,0)) と答えを出すセルにいれて、SHIFTキーとCTRLキーを 押しつつ、ENTERキーを押します。 100行の場合はA7をA100に2箇所変えると良い。

WANKO_P
質問者

お礼

ありがとうございます。 EXCELを使っている人なら大抵知っているであろうSUMを使ってもできるんですね。 「配列数式」というのを初めて知りました。 EXCELってものすごく奥深いですよね。

回答No.3

完璧に一行おきであれば、#1さんのURLが参考になります。 途中に値以外の文字などがある場合は、で無視して集計してくれます。 集計したくない行に値もある場合は、例えば、A列の100行まで値が入っているとして、B列にマーク(例えば○)をつけ、 =SUMIF(B1:B100,"○",A1:A100) とすれば、○のある行の値のみ集計してくれます。

WANKO_P
質問者

お礼

ありがとうございます。 そういうやり方もあるんですね。 で、フラグを入力してある行を非表示とかにすれば良さそうですよね。 1度やってみます。

回答No.2

こんにちは。 参考URLのページを活用できますでしょうか?

参考URL:
http://arena.nikkeibp.co.jp/tec/excel/20040310/107758/
WANKO_P
質問者

お礼

ありがとうございます。 参項URLを開いてみました。 偶数行と奇数行の判定はとても勉強になりました。 今回とこれからの作業の為にチェックしておこうと思います。

関連するQ&A

  • SUM関数で教えて下さい。

    関数かマクロで教えて下さい。 シート1に日付が4/1~9/30があり、その下に売上数字があります。 シート2のセルA1に集計開始日、セルC1に集計終了日を入力すると セルB2にシート1の集計期間の売上合計が計算されるようにしたい のですが、わからなくて困ってます。 集計期間は、変動しますので集計開始日、集計終了日を入力した 期間で集計したです。 わかりにくい説明ですみませんが宜しくお願い致します。 シート1 日付 4/1 4/2 4/3 4/4 4/5 → 9/28 9/29 9/30 売上 10   21   3   9   6    → 4   6  7 シート2 5/1 ~ 5/15 売上合計 163

  • 《エクセル2000》シート名をセルで指定する?

    「学校」「会社」「家庭」などをシート名に持つファイルがあります。 それぞれに入っている数字を「集計」シートに集計したいのですが、例えば集計シートのA1セルに「学校」などのシート名を表示させて、その「集計シートA1セルの値に該当する名前のシートのB1~B100を合計する」というのを、関数で表現するにはどうすればいいでしょうか?(VBAではなく) よろしくお願い致します。

  • ExcelのSUM関数の集計範囲を可変にしたい

    ExcelのSUM関数の集計範囲を可変にしたい 1.状況、問題点 商品毎の売上、利益を管理するリスト表が あり、その表の行に対する追加、更新処理を VBAマクロで行っています。 使用環境はExcel2010 リスト表は、帳票としての見易さを考慮して、 同じカテゴリに属する複数の行に対して小計行 を設けカテゴリ別の売上、利益を集計しています カテゴリに属する行範囲に対してSUM関数を使っ ているということです (例1)この表にマクロで行を追加させる際、 あるカテゴリの小計欄で参照している集計 範囲の行の途中に行を挿入する場合は、行 を追加してもSUM関数の集計範囲は自動的に 拡大されます。   A  B    C   1 項目   売上    2  田中   100 3 小計   100   4 山田 200 ⇒ 挿入   5  佐藤 300   6  小計   600 式 = SUM(C4:C5) 3行目と4行面の間に行を挿入するとき  SUM関数の集計範囲は自動的に拡大され る  SUM(C2:C4) ⇒ SUM(C2:C5) (例2)挿入する行が集計行の直ぐ上の場合 SUM関数の集計対象範囲がずれてしまう   A   B    C   1 項目  売上   2  田中  100 3 小計  100   4 山田 200   5  佐藤 300 ⇒ 挿入    6  小計 600 ※      ※ 式 SUM(C4:C5) は   自動的にはSUMC(C4:C6)とはならない 2.実現したいこと       小計の直前にに行を挿入した場合も自動的に   集計範囲が変わるようにしたいのです。 実装方法 案1 (1)インストラクタのネタ帳  http://www.relief.jp/itnote/archives/003417.php  に、「表全体の最後の行」※に集計行がある場合として 「合計範囲を自動的に変更する」方法の紹介あり。  この方法はCOUNTA()で入力済みのセルをカウント。   私のケースでは  ・売上、利益などのセルが空白となる場合がある  ・C列は 売上 データを記載する列で   なので半角スペースや全角スペース は入らない  ・#REFやDIV/!0などは入りうる   C4:C5 のセル数は DIV/0!なども含めデータが入っているセル数  +ブランクが入っているセル数 は  COUNTA(C4:C5) + COUNTBlank(C4:C5) なので セル C5  =SUM(C2:INDEX(C4:C5, COUNTA(C4:C5)+COUNTBlank(C4:C5))   とするか?     ※「インストラクタのネタ帳」の方法は、「表全体の行数」を  もとめる場合に最後の行までを指定できて有効ですが、上の  ように小計をもとめる場合は、どうしても小計をもとめる範囲  式に書く必要があり、そこが集計範囲が変わってしまうと役に  立たないです。  代案としては、6行目の小計の行番号から3行目の小計の行番号  を引いて行数を求める方法でしょうか    この方法の場合、小計の式に 6行目行番号-3行目行番号  のように具体的に記述してはNGなので "下"の小計行から"上"  の小計行を引く というような間接的な指定の仕方が必要と  考えています。案1の検討はここまでです。 実装方法 案2  上のように表自体の集計関数を変える以外に、  マクロで対応する方法  行を追加する際に、 a)行の追加がある場合、行の挿入位置が小計   の集計範囲の”途中”なら 何もしない、  b)追加する行が集計行のすぐ上になる場合 つまり変更前の挿入位置+1   が小計行の行番号と等しい時は、追加する行数分   SUM関数の集計範囲を広げる     案1が難しそうなので案2で実装しようと思っています  Q1 案1と案2の検討結果についてお気づきの点があれあば教えて     ください  Q2 可能であれば、案2の実装方法についてヒント程度でもいいので     教えてください  以上

  • Excel セルの名前を検索できますか?

    セルに名前を定義しています。そのセルに書かれた値を取得したいです。その方法として、セルの名前を検索することでセルを特定し、値を取得するマクロを作成したら、できるのでは?と考えたのですが、ヘルプやWebを調べてもこのような方法はありませんでした。こういったことはできないのでしょうか? 私の知識レベルは、C言語はひととおりできる、VBの経験はなし、業務でExcelを使っており基本操作はできるレベルです。 すみませんが、アドバイス、よろしくお願いいたします。 以下やりたいことの補足 具体的には、仕様書の仕様数がかかれたセルがあり、そのセルは”仕様数”として名前を定義している。そのセルの値である仕様数をマクロやVBAなどにより自動集計して、仕様書のボリュームを読みたいと考えています。

  • Excelマクロ:複数シート同座標セルの値を、連番で一覧に参照したい

    マクロは素人なのでご教授お願いします。 Excelブック一つにシートが20あったとします。 ○20シート全ての同座標セルに、ある商品の「合計」と「個数」の値がある ○「集計」シートが別にあり、「sheet1」から「sheet20」までを連番で一覧にしてある 該当のセルに「合計」と「個数」の値を参照させる <「集計」シート 結果例>    A      B       C  1 シート名  合計数   個数(表見出し) 2 sheet1    78      5 3 sheet2    90      17 4 sheet3    112     224 また、以前まったくの逆の条件で質問をしまして、良回答いただきました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=715150 参考までにご覧になってみて下さい。 よろしくお願い致します。

  • Excel VBA セルを指定個数ランダム選択

    Excel VBA セルを指定個数ランダム選択 A1からA30までのセルをランダムで8コ選んで値として"○"を入れる ということをやりたいのですがどのようにすればよいでしょうか? よろしくお願いします。

  • Excelで色のついたセルの数を数えたい

    教えて下さい。お願いします。 3000件程のデータが入力されていて、セルの値の種類ごとに セルの色で色分けされています。 これを、赤のセルは何件、青のセル何件、というふうに 関数を使用して集計するにはどうすればいいでしょうか。 色は全部で3種類と色がないもの、合計4種類です。

  • エクセルの「countif」関数の使いかた

    countifの使い方で質問があります。 ヘルプを見て、 「=COUNTIF(B2:B5,">55")だとB2~B5で55より大きい値が入力 されているセルの個数を求めます」とあります。 「55」のように値が決まっていればいいが、決まっていなくて、 あるセルを参照するような場合はどのようにすればいいのでしょうか? 例えば、A1に55と入っていて、「A1のセルの値」より大きい セルの個数を求める場合。 また、「上記だと55より大きい」ですが、「55より大きくて60以下」 のように条件が二つある場合はどうすればいいのですか? (この場合も参照セルを使う方法で知りたいです。 よろしくお願いします。

  • Excelでセル内の数字だけ取り出したい。

    1セル内に最大40文字程度の半角英数カナが混在しています。 例:1234abcdアイウ3456efghijk これが数千行あるのですが、集計のため数字にしたく、 しかも数字連続と次の数字連続の間にスペースを入れたいです。 例:1234 3456 かなり調べましたが、関数では数字を取り出すだけでも40文字は不可能のように思います。 マクロで置き換えを連続させて文字を消すのは思いつくのですが、 今少しスマートな方法はありますでしょうか?

  • Excel VBA セルの指定方法について

    Excell2013です。 次のような表(一部)があります。   日   項目      額       分類   12 ノート 250 3 この、250を、別表の分類3の列(H列)の12日の行(15行)のセルに、そこにすでに値があれば250との合計値として入力したいのです。 データによって日付も分類も違いますので、マクロで自動的に入力したいのですが、どうもよくわかりません。 このような場合のVBAでの入力先セルの指定のしかたをどうすればよいのかどなたかご教示ください。

専門家に質問してみよう