OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

excel関数・網掛けの個数を数える

  • 困ってます
  • 質問No.241020
  • 閲覧数3383
  • ありがとう数4
  • 気になる数0
  • 回答数3
  • コメント数0

お世話になっています。
excel2000で、行ごとに網掛けされている個数を数える関数を作りたいのです。
=COUNTIF(H5:W5,)ここまで考え、この後に「網掛け」を意味する検索条件を入れればいいのかな、と思うのですが、わかりません。
ご教授いただきたく、宜しくお願い致します。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1
レベル13

ベストアンサー率 68% (791/1163)

通常のワークシート関数では難しいでしょう。ユーザー定義関数を作ってみました。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入し、そこに下記コードを貼り付けます。 シートに戻り、例えば、範囲A1:B10を調べる場合は、   =PatternCellsCount(A1:B10) のようにします。 対象範囲の網掛け設定を変更し ...続きを読む
通常のワークシート関数では難しいでしょう。ユーザー定義関数を作ってみました。

ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入し、そこに下記コードを貼り付けます。
シートに戻り、例えば、範囲A1:B10を調べる場合は、
  =PatternCellsCount(A1:B10) のようにします。
対象範囲の網掛け設定を変更した場合は、再計算を行ってください。また、これは条件付書式の網掛けは感知できません。

↓ここから
Function PatternCellsCount(rgSel As Range)
  Dim rg As Range 'セル
  Dim ct As Long 'カウンタ

  Application.Volatile '自動再計算関数にする
  For Each rg In rgSel
    '網掛け設定されていればカウントする
    If rg.Interior.ColorIndex <> xlNone Then
      ct = ct + 1
    End If
  Next
  PatternCellsCount = ct
End Function
お礼コメント
noname#63648

nishi6さま、いつもいつもありがとうございます。
ありゃ、条件付き書式の網掛けはだめなんですか。今回まさにそれなので、じゃあせっかく教えて頂いたけれど、だめですね。
申し訳ありません、でも勉強になりました。
投稿日時 - 2002-03-27 12:15:01

  • 回答No.2
レベル13

ベストアンサー率 68% (791/1163)

>条件付き書式の網掛けはだめなんですか。今回まさにそれなので 条件付き書式の場合、網掛けをする条件さえわかれば簡単でしょう。 COUNTIF(範囲,条件) か 面倒な条件なら網掛けをする条件をコード化すればいいでしょう。 質問からは条件付き書式とは読みきれないですね。デハ。 ...続きを読む
>条件付き書式の網掛けはだめなんですか。今回まさにそれなので

条件付き書式の場合、網掛けをする条件さえわかれば簡単でしょう。
COUNTIF(範囲,条件) か 面倒な条件なら網掛けをする条件をコード化すればいいでしょう。

質問からは条件付き書式とは読みきれないですね。デハ。
補足コメント
noname#63648

ふたたびのご回答、本当にありがとうございます。m(__)m

>質問からは条件付き書式とは読みきれないですね。
教えて頂くには、どういう情報が必要なのか、なかなか判断が付きかねてしまい・・・。説明不足ですみませんでした。

>条件付き書式の場合、網掛けをする条件さえわかれば簡単でしょう。
>COUNTIF(範囲,条件) か 面倒な条件なら網掛けをする条件をコード化すればいいでしょう。
それが、各列に入っている条件が、ちがうのです。例えば列Lでは50以上、列Mでは10以下、というように。ですので、難しいと思うのですが。

ご厚意に甘えて、もう少し説明させて頂くと、行5は○○商事、行6は○○食品、というように、各行が会社ごとの情報になっています。そして、列Hでは取引年数、列Iでは従業員数、などの項目となっています。そして、列Hでは10未満(の会社)、列Iでは100以上が網掛けされるように設定してあります。そして、タテの合計(取引年数10年未満の会社は何社あるか)は、設定できましたが、ヨコの合計(○○商事は、いくつの項目が当てはまるか)の設定に苦労している次第です。

もし何かお知恵を拝借できるととても助かります。
投稿日時 - 2002-03-27 17:50:08
  • 回答No.3
レベル13

ベストアンサー率 68% (791/1163)

補足を参考に行単位の網掛け条件に合致する個数をカウントするモデルのマクロです。 単に、網掛けの条件を羅列しているだけです。 使い方は、=AmikakeTTL(行数) です。 合計したい行のどこかに =AmikakeTTL(ROW()) とすればコピーもできます。 同一列でのカウントも同じようにできることになります。 ご参考に。 Public Function AmikakeTT ...続きを読む
補足を参考に行単位の網掛け条件に合致する個数をカウントするモデルのマクロです。
単に、網掛けの条件を羅列しているだけです。

使い方は、=AmikakeTTL(行数) です。
合計したい行のどこかに =AmikakeTTL(ROW()) とすればコピーもできます。

同一列でのカウントも同じようにできることになります。

ご参考に。

Public Function AmikakeTTL(rw As Long)
  Dim TTL As Integer '網掛け個数

  Application.Volatile '自動再計算関数にする
  With ActiveSheet 'Sheetが決まっていたら固定していい
    '列Hでは10未満(の会社)
    If IsNumeric(.Range("H" & rw)) And .Range("H" & rw) < 10 Then
      TTL = TTL + 1
    End If

    '列Iでは100以上
    If IsNumeric(.Range("I" & rw)) And .Range("I" & rw) >= 100 Then
      TTL = TTL + 1
    End If

    '列Jでは・・・・・

    '列Kでは・・・・・

  End With
  AmikakeTTL = TTL
End Function
お礼コメント
noname#63648

nishi6さま
たびたびほんとうにありがとうございます。
私には、ぱっと見ただけでは理解できませんが、マクロを全く未体験というわけではないので、本を参考にしながら、理解し、トライしてみようと思います。
とにかく、お返事を頂き感激致しましたので、まずはお礼まで。
投稿日時 - 2002-03-29 17:12:47
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ