• ベストアンサー

エクセル関数使用時の範囲指定の仕方について

初歩的ですみません。 表示されている数字が1以上の数字を拾って合計を出したいのですが、その範囲が問題なんです。 一列ごとの範囲なんですよ。 たとえば、範囲指定したいのは、(セル名で…) A1、A3、A5、A7…と、全40セルで、隔数なんですよ。 A2、A4、A6などは別の数字が入っていて、関係ないのでカウントして欲しくないんです。 その場合、どのような方法をとれば上手くできますか? COUNTIFを使おうと思っていたのですが… 具体例を示して頂ければ幸いです。 すみません、宜しくお願いします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.6

>C、E、Gなどを隔数で省きたかったのですが、 奇数列でなく偶数列を集計ならMOD()の結果を0でみればOKです。 >カウントしたいだけなのですが、セルに入力した数字の合計が表示されてしまいました… あと合計でなくカウントですか? {=COUNT(IF(MOD(COLUMN(C1:CD1),2)=0,C1:CD1,""))} または =SUMPRODUCT((MOD(COLUMN(C1:CD1),2)=0)*ISNUMBER(C1:CD1))

megumi1
質問者

お礼

再々度本当にありがとうございます。 こちらも試してみました。 ばっちりです! 本当にmshr1962さんにはお世話になりっぱなしで申し訳ありませんでした。 それと、本当にお世話になりました。

megumi1
質問者

補足

解決が出来たので、ここで締め切りたいと思います。 知恵を絞ってくださいまして、皆さんありがとうございました!

その他の回答 (5)

  • EL-SUR
  • ベストアンサー率76% (83/108)
回答No.5

皆さんの回答は 「1以上の数字」という条件が考慮されていないようですが。 それと皆さん「数値の合計」になっていますよね。 ご希望は「セルの個数」ではないんですか? > C、E、G…と無視したいんです 範囲がC1:CD1だとして、 D列・F列…のような偶数列(A列を1として)だけが対象なら ■ 「1以上の数値のセルの個数」 =SUMPRODUCT((MOD(COLUMN(C1:CD1),2)=0)*(C1:CD1>=1)) 普通にENTERです。 1以上の数値の「合計」なら =SUMPRODUCT((MOD(COLUMN(C1:CD1),2)=0)*(C1:CD1>=1),C1:CD1) ちなみに奇数列なら(セルの個数) =SUMPRODUCT((MOD(COLUMN(C1:CD1),2)=1)*(C1:CD1>=1)) のようにします。

megumi1
質問者

お礼

回答ありがとうございます。 参考にさせて頂きました! ばっちりです!本当にありがとうございます。 ご迷惑おかけしました。 というかこの場をお借りして、回答してくださった皆さん頭を悩ませてしまって申し訳ありません!お世話をかけまして申し訳ありませんでした!

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

> 実際私がカウントしたいのは横にC~CDまでだからだと思います。(この場合、C、E、G…と無視したいんです) =SUMPRODUCT(C1:CD1*(MOD(COLUMN(C1:CD1),2)=0)) ですね。

megumi1
質問者

お礼

丁寧にありがとうございます。 試してみました! ですが、カウントしたいだけなのですが、セルに入力した数字の合計が表示されてしまいました…。 D1が100  F1が150 H1が0 の場合、回答は2です。 このようになるようにしたいんです。 お手数かけてすみません。 また、ありがとうございます。感謝してます。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

>実際私がカウントしたいのは横にC~CDまでだからだと思います。 横方向の場合はROW()をCOLUMN()に置き換えれば可能ですよ。 配列数式なら {=SUM(IF(MOD(COLUMN(C1:CD1),2)=1,C1:CD1,""))} 別解 =SUMPRODUCT((MOD(COLUMN(C1:CD1),2)=1)*(C1:CD1)) こちらの関数は配列を計算するものなので配列数式にする必要がありません。

megumi1
質問者

お礼

再度回答ありがとうございます。 {=SUM(IF(MOD(COLUMN(C1:CD1),2)=1,C1:CD1,""))} でやってみたのですが、お手数おかけしますがもう少しという感じです。 先ほど補足に書きましたように、C~CDまでのなかで、C、E、Gなどを隔数で省きたかったのですが、 今のままですと、CがカウントされてDが省かれた状態になってるんです。 ですが、どう微調整して良いのかごめんなさい分かりません…。本当に申し訳ありません、教えて頂けたら幸いです。 これを機に勉強します…。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

次の方法は如何でしょうか。 {=SUM(IF(MOD(ROW(A1:A40),2)=1,A1:A40,""))} { }は関数入力完了時、shift+ctrl+enterと同時押下して下さい。 これは配列数式でA1からA40分の奇数行を合計しています。

megumi1
質問者

お礼

回答ありがとうございます。 さっそくやってみます。 その後どうなったかも書きますので、 とりあえず失礼します。 ありがとうございました!

megumi1
質問者

補足

補足です。 やってみましたが出来ませんでした。 たぶん、例は縦ですけど、実際私がカウントしたいのは横にC~CDまでだからだと思います。(この場合、C、E、G…と無視したいんです) お手数かけたのにすみません。 出来ればもう一度教えて頂けませんでしょうか? 本当にすみません。

  • S-Fuji
  • ベストアンサー率36% (592/1624)
回答No.1

=COUNTIF(A1:A40,">1") で、A1からA40迄の中の1以上のデーター数をカウントします。

megumi1
質問者

お礼

回答ありがとうございます。 質問を読んで頂けたでしょうか? A1からA40のなかで、カウントして欲しくない数字があるので、その場合を教えて頂きたかったのですが… たとえばA1に数字が50と入っていて、 A2に40と、数字が入っているとします。 そのときの数式の答えが『1』(A1はカウントして、A2は無視して欲しい)になるようにしたいんです。

関連するQ&A