アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になっています。
excel2000で、行ごとに網掛けされている個数を数える関数を作りたいのです。
=COUNTIF(H5:W5,)ここまで考え、この後に「網掛け」を意味する検索条件を入れればいいのかな、と思うのですが、わかりません。
ご教授いただきたく、宜しくお願い致します。

A 回答 (3件)

補足を参考に行単位の網掛け条件に合致する個数をカウントするモデルのマクロです。


単に、網掛けの条件を羅列しているだけです。

使い方は、=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
    • good
    • 1
この回答へのお礼

nishi6さま
たびたびほんとうにありがとうございます。
私には、ぱっと見ただけでは理解できませんが、マクロを全く未体験というわけではないので、本を参考にしながら、理解し、トライしてみようと思います。
とにかく、お返事を頂き感激致しましたので、まずはお礼まで。

お礼日時:2002/03/29 17:12

>条件付き書式の網掛けはだめなんですか。

今回まさにそれなので

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

質問からは条件付き書式とは読みきれないですね。デハ。

この回答への補足

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

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

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

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

もし何かお知恵を拝借できるととても助かります。

補足日時:2002/03/27 17:50
    • good
    • 0

通常のワークシート関数では難しいでしょう。

ユーザー定義関数を作ってみました。

ツール→マクロ→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
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/03/27 12:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!