• ベストアンサー

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/17070)
回答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