• ベストアンサー

エクセルの関数で…その2

先ほど別の質問したのですが、もう一つお願いします。 計算式の入ったいくつかのセルで、値が0以外になっているもののセルの個数を出したいです。       式   値 セルA1 (A2+A3) (10) セルB1 (B1+B2) (5) セルC1 (C1+C2) (0) の時、2個と返す

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

No.3です。 >同じ列の2つ飛びセルです。 この場合は以下のようになります。 =SUMPRODUCT((MOD(COLUMN(A1:M1),3)=1)*(A1:M1<>0)) COLUMN関数は列番号を返す関数で、MOD関数は割り算の余りを返す関数です。 したがって、これらを組み合わせれば、「n個飛び」の計算が自由に出来ることになります。

umyu
質問者

お礼

ありがとうございます。 かなり長い式になってしまいましたが、バッチリ出来ました。 他にも応用できそうですね。

その他の回答 (3)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 >範囲ではなく、飛んでるセル それは、無秩序に飛んでいるのでしょうか?それとも、何か法則(規則)があるのでしょうか? 規則があるのなら、SUMPRODUCT関数を使用して出来る可能性があります。 例えば、A1:Z1の範囲で、A1から1列置きに参照する方法ですと、 =SUMPRODUCT((MOD(COLUMN(A1:Z1),2)=1)*(A1:Z1<>0)) という感じになります。 もし、規則性があれば補足して下さい。

umyu
質問者

補足

同じ列の2つ飛びセルです。 A1,D1,G1,J1,M1 の個数を出したく、 B1,C1,E1,F1,H1,I1,K1,1L は飛ばしたいセルです。 宜しくお願いします。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

範囲が飛び飛びになっている場合は個別に調べていかないとしょうがないような気がします。なるべくなら、うまく範囲で表せる様にしたほうが簡単ですが =(A1<>0)+(B1<>0)+(C1<>0) の様にして、飛び飛びの部分を付け足していきます。

umyu
質問者

お礼

ありがとうございました。 この方法では出来ました。

  • hirumin
  • ベストアンサー率29% (705/2376)
回答No.1

COUNTIF関数を使います。 =COUNTIF(A1:C1,"<>0")

umyu
質問者

お礼

またまたありがとうございます。 言葉が足りなくてすみません…範囲ではなく、飛んでるセルで…なのです。

関連するQ&A