- ベストアンサー
エクセルの1行おきの合計数式結果が0になる問題
- エクセルの1行おきのセルの合計数式が0になってしまう問題が発生しています。
- データ範囲がE2からU117まであり、E列のE2から1行おきに数値があります。
- 指定の数式を使用して合計を計算した結果、Ctrl+Shift+Enterすると0になってしまいます。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
>0になってしまう数式は対象外の奇数列に入力します。 >E3(対象外の奇数列)=E2(1行おきの対象セル)/E117(1行おきの合計値) 情報不足だったのですが「0」と表示される原因がわかりました。 E3セルを計算するのにE3セルを含む範囲の数式を使っているため、数式が循環参照になっています。 この場合は、循環参照の警告ダイアログが表示され、ご質問のように、そのセルに「0」と表示されます。 循環参照を避けるには、E3セルを参照する数式はE3セル以外に入力する必要があります。
その他の回答 (8)
- MackyNo1
- ベストアンサー率53% (1521/2850)
参考までに。 偶数行に文字列が入ったデータをSUMPRODUCT関数で集計したいなら、引数を以下のようにカンマで区切ったSUMPRODUCT関数を利用します(文字列は無視されて計算されます)。 =SUMPRODUCT((MOD(ROW(E2:E117),2)=0)*1,E2:E117) このような数式は、いずれも偶数行にエラー値が入っている場合は、数式全体でエラー値を返して「0」にはならないはずですので、本当に「0」が表示されるのであれば他の原因(SUMPRODUCT関数以外の場合はCtrl+Shift+Enterで配列数式にしていないなど)が考えられます。 いずれにしろ、エラーのセルの行番号が偶数行になっていないかなど、表のレイアウトが正しく設定されているかどうかを含めて、十分に検証する必要がありそうです。
- MackyNo1
- ベストアンサー率53% (1521/2850)
基本的に表のレイアウトを正しく表現していないような気がします。 >データ範囲にあった数式がエラー(DIV)だったため、 一旦、数式をクリアにしたら結果がでました。 エラーの出ている数式が集計対象外の奇数列に入っているなら、問題なく集計できるはずです。 >ただ、一旦、クリアにした数式を入力したら、今度はこの数式結果が0になってしまいました・・・ 補足説明の意味が良くわかりません。 「クリアにした数式を入力したら」とはどのような式をどこのセルに入力したのでしょうか? >1行おきの合計値を分母に、指定行のセルを分子にして割合を算出したかったのですが。 分母と分子を数式でそれぞれ算出して割り算すれば良いだけのことだと思うのですが、何が問題になっているのでしょうか?
補足
返信ありがとうございます。 説明が下手ですみません。 >エラーの出ている数式が集計対象外の奇数列に入っているなら、問題なく集計できる 奇数列の数式のことでしたので、原因はこれではなかったということですね。 0になってしまう数式は対象外の奇数列に入力します。 E3(対象外の奇数列)=E2(1行おきの対象セル)/E117(1行おきの合計値) MackyNo1さんの言うとおり、何か表組でおかしいところがあるかもしれませんので、 シートをクリアにして一から作り直してみます。
- imogasi
- ベストアンサー率27% (4737/17069)
例データ a2:a8 2 AAAA --- 15 ーー 式 =SUM(IF(MOD(ROW(A2:A10),2)=0,A2:A10,0))と入れてshift+ctrl+enterで 結果 17 文字列やーに変えても(空白範囲を含めても)答えがエラーになったり0には鳴らなかったが。 ーー 質問の(IF(MOD(ROW(E2:E117),2)=MOD(ROW(E2),2),E2:E117)はIFがfalseの時のことが記述が無いが。
お礼
ご丁寧な回答、ありがとうございます。 データ範囲にあった数式がエラー(DIV)だったため、 一旦、数式をクリアにしたら結果がでました。 なお、質問文の式はマイクロソフトのサポートサイトにあったものを流用しました。
- tom04
- ベストアンサー率49% (2537/5117)
No.1です! たびたびごめんなさい。 質問文をよく読み返してみると・・・ >指定の行には数値以外に「-(ハイフン)」や、範囲行に数式が入っていたりするからでしょうか? とありますので、前回の数式ではエラーになると思います。 お示しの数式を配列数式にすればちゃんと表示されました。 こちらで質問文にある数式をそのままコピー&ペーストし、配列数式にしたら 「-」があっても「文字列」であっても問題ないみたいですよ。 他の式としては =SUM(IF(MOD(ROW(E2:E117),2)=0,E2:E117)) (配列数式)でも大丈夫みたいです。 他の方の回答も配列数式ですべて大丈夫だと思います。 どうも何度も失礼しました。m(__)m
お礼
すばやいご回答、ありがとうございます。 メール転送指示を忘れてしまい、御礼が遅くなってしまいすみません。 データ範囲にあった数式がエラー(DIV)だったため、 一旦、数式をクリアにしたら結果がでました。
補足
ただ、一旦、クリアにした数式を入力したら、今度はこの数式結果が0になってしまいました・・・ 1行おきの合計値を分母に、指定行のセルを分子にして割合を算出したかったのですが。 これは別の質問ですよね。。
- MackyNo1
- ベストアンサー率53% (1521/2850)
E2セル以下の偶数行の合計をするのであれば、数式自体に間違いはありません。 いくつか回答が寄せられていますが、No1の回答を除けば基本的に質問で提示されている数式と同じ数式ですので、「0」と表示されることになります。 もし、No1の回答で「0」以外の数字が出るのであれば、その数字が文字列数字ということになります。 偶数行の数字が手入力したものなら、その列を選択して「データ」「区切り位置」で「完了」してみてください。
お礼
ご回答ありがとうございます。 お寄せいただきた式は、すべて、 データ範囲にあったエラー数式(DIV)を、一旦クリアにしたら結果がでました。 なんでできないのかが不明だったため、このようなご回答は助かります。
- DIooggooID
- ベストアンサー率27% (1730/6405)
もう少し、シンプルに =SUM(IF(MOD(ROW(E2:E117),2)<>1,E2:E117)) としても同じ結果になりますか?
お礼
ご回答ありがとうございます。 こちらの数式でも データ範囲にあったエラー数式(DIV)を、 一旦クリアにしたら結果がでました。
- mu2011
- ベストアンサー率38% (1910/4994)
現在の方法ならば以下の方法で如何でしょうか。 =SUM(IF(MOD(ROW(E2:E117),2)=0,E2:E117))
お礼
ご回答ありがとうございます。 こちらの数式でも データ範囲にあったエラー数式(DIV)を、 一旦クリアにしたら結果がでました。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 一例です。 =SUMPRODUCT((MOD(ROW(E2:E117),2)=0)*(E2:E117)) ではどうでしょうか? 以上、参考になれば良いのですが・・・m(__)m
お礼
納得です・・; 奇数行は表の見せ方上、必要なため、 1行おきの合計値を、本来の表の合計欄(見せるよう)に値で貼り付けることにしました。 長々お付き合いいただき、ありがとうございました。