みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2006-04-24 14:19:20

QNo.2111277

すぐに回答ほしいです

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

>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))

投稿日時 - 2006-04-24 15:41:27

補足

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

投稿日時 - 2006-04-24 15:45:16

お礼

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

投稿日時 - 2006-04-24 15:44:51

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.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))

のようにします。

投稿日時 - 2006-04-24 15:34:42

お礼

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

投稿日時 - 2006-04-24 15:42:44

ANo.4

> 実際私がカウントしたいのは横にC~CDまでだからだと思います。(この場合、C、E、G…と無視したいんです)

=SUMPRODUCT(C1:CD1*(MOD(COLUMN(C1:CD1),2)=0))

ですね。

投稿日時 - 2006-04-24 15:18:34

お礼

丁寧にありがとうございます。
試してみました!
ですが、カウントしたいだけなのですが、セルに入力した数字の合計が表示されてしまいました…。
D1が100 
F1が150
H1が0

の場合、回答は2です。
このようになるようにしたいんです。
お手数かけてすみません。
また、ありがとうございます。感謝してます。

投稿日時 - 2006-04-24 15:32:43

ANo.3

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

投稿日時 - 2006-04-24 15:11:23

お礼

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

投稿日時 - 2006-04-24 15:25:34

ANo.2

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

投稿日時 - 2006-04-24 14:38:48

補足

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

投稿日時 - 2006-04-24 14:49:59

お礼

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

投稿日時 - 2006-04-24 14:44:48

ANo.1

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

投稿日時 - 2006-04-24 14:27:59

お礼

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

投稿日時 - 2006-04-24 14:33:42

あなたにオススメの質問