[[20040326113042]] 『色の付いたセルだけの数の合計』(H.O) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『色の付いたセルだけの数の合計』(H.O)

[範囲に条件付書式でセルに色を付け 色の付いたセルだけの数の合計
または、セルの数を求める事ができないものか?]


 ダウンロードコーナーにColor関数があります。
http://www.excel.studio-kazu.jp/DL/DL01.html#color
 (kazu)


 こちら事務局です。
 掲示板のプログラムにちょっとした弱点があり、
 ニックネームを変更(カンマをドットに)しました。
 (kazu)


初めての質問で早く答えていただき ありがとうございます。
UFClr0322lzhファイルをタウンロ−ドしたのですが
LZH ファイルが開けません アプリケ−ションないのでしょうか?
パソコンは
   O S はWinndows ME
   エクセル は XP です
  (H O)


 そうですよね。lzhでは具合が悪いかもしれませんね。
 解凍ソフトをダウンロードして、インストールしてください。
 ↓私の好みの解凍ソフト[Lacha]
http://www.vector.co.jp/soft/win95/util/se130263.html
 デスクトップにLachaのショートカットができますので、
 UFClr0322.lzh をLachaにドラッグして渡してください。
(kazu)


下記も参考になりませんか。(なお)

[[20021021140637]]『文字色、背景色を条件に指定範囲の合計を出すには?』(みい)


kazu様ありがとうございました できました。
ですが?そのセルを条件付き書式の設定 ファオント パタ−ンで色を
変えたのは出来ません そのセルの字の色や セルの色は 4102 4142と
表示されます 私のやり方は悪いのかもしれません。
  (H O)


 これは、つらいところですね。

 条件付書式も[セルの色]に違いはないのですが、
 ad.Interior.ColorIndex が -4142 のまま変化しません。
 従って、UFClrSumccx()では計算できません。

 せっかくLacha までインストールしてここまで来たのに、
 ごめんなさい。
(kazu)

 でも、条件付書式で色付けをしているのなら、
その条件でカウントできるような・・・。
(KAMIYA)


 >その条件でカウントできる...
 ですよね...って...
 前にもおんなじこと書いたような...デジャブ〜〜!   (jun53)


 [条件付書式]の[セルの色]

 FormatConditions(1).Interior.ColorIndex などで設定された色は拾えるのですが
 その条件を満たしていなくてもその色が返ってきます。
 もう少し考えます。
 (kazu)

 条件付書式の色を数えようとは、考えたことが無かったので...
 この後どうなるんでしょう、ドキドキ!

 久しぶりにフリーソフトを覗いてみました。
 Lhasa32
 Lhaplus 1.22
 Lhaca デラックス版 1.18
 Lhaz 1.13
 +Lhaca 0.72
 解凍ソフトの人気No5 だそうです。何がなんだか良くわかりません。   (jun53)

 >条件付書式の色を数えようとは、考えたことが無かったので...
 
少し言葉足らずでした。
条件付書式である「条件」によってセルの色を変化させているのであれば、
その「条件」を満たすセルをカウントすることは可能ではないか、という
ことを言いたかったのです。「複数条件でのカウント」みたいに、関数で。
(KAMIYA)

 >考えたことが無かったので...
 ↑訂正、考えたことは有るんです、が実行したことが無い、ということでした。
 考え方は、KAMIYAさんと同じようなことですね。   (jun53)


 めちゃ遅くなりました。今は2004/04/04の夜中です。

 Webを探し回って、ヒントを↓見つけました。
 [条件付き書式の反映結果の取得は可能?]
http://keep-on.com/excelyou/1999lng4/199908/99080044.txt

 これをヒントにColor関数の条件付書式対応版の試作品を作りました。

 とりあえず、
 [条件付書式の条件が成立]している[セルの数]を求める =UFColor(B1:B26)
 [数式が]のテストがほとんどできていないし、
 名前もまだ適当ですし...
 実験台?犠牲者?テスター?を求めます。

http://www.excel.studio-kazu.jp/DL/DL01.html#color

 (kazu)


 今の所よさそうです。
(ケン)犠牲者1号?


 申し訳ない、
(2004/04/05 11:25 Function 忘れのバグを修正)
 の修正前の版をテストして困ったのではありませんか、謝々。
 (kazu)

 普通に動いていましたよ。修正後をみたのかなぁ?(ケン)
Function UFColor(addr As Range)
' 条件付書式のセルの色の条件を満たしているものの数 2004/04/04
' 参考にしたサイト:http://keep-on.com/excelyou/1999lng4/199908/99080044.txt
Dim cL As Range, i As Integer, hcnt As Integer
hcnt = 0

For Each cL In addr

    For i = 1 To cL.FormatConditions.Count                 '条件付き書式設定あり

        If cL.FormatConditions(i).Type = xlExpression Then    '2 * 数式 *

            If cL.Formula = cL.FormatConditions(i).Formula1 Then
                hcnt = hitProc(hcnt)
            End If
        Else                                                    '* 値 *

            Select Case cL.FormatConditions(i).Operator
            Case xlBetween                                      '1「次の値の間」
                If cL.Value >= Evaluate(cL.FormatConditions(i).Formula1) And _
                    cL.Value <= Evaluate(cL.FormatConditions(i).Formula2) Then
                    hcnt = hitProc(hcnt)
                End If
            Case xlNotBetween                                   '2「の間以外」
                If cL.Value < Evaluate(cL.FormatConditions(i).Formula1) Or _
                    cL.Value > Evaluate(cL.FormatConditions(i).Formula2) Then
                    hcnt = hitProc(hcnt)
                End If
            Case xlEqual                                        '3「次の値と等しい」
                If cL.Value = Evaluate(cL.FormatConditions(i).Formula1) Then
                    hcnt = hitProc(hcnt)
                End If
            Case xlNotEqual                                     '4「次の値と等しくない」
                If cL.Value <> Evaluate(cL.FormatConditions(i).Formula1) Then
                    hcnt = hitProc(hcnt)
                End If
           Case xlGreater                                      '5「より大きい」
                If cL.Value > Evaluate(cL.FormatConditions(i).Formula1) Then
                    hcnt = hitProc(hcnt)
                End If
            Case xlLess                                         '6「より小さい」
                If cL.Value < Evaluate(cL.FormatConditions(i).Formula1) Then
                    hcnt = hitProc(hcnt)
                End If
            Case xlGreaterEqual                                 '7「以上」
                If cL.Value >= Evaluate(cL.FormatConditions(i).Formula1) Then
                    hcnt = hitProc(hcnt)
                End If
           Case xlLessEqual                                    '8「以下」
                If cL.Value <= Evaluate(cL.FormatConditions(i).Formula1) Then
                    hcnt = hitProc(hcnt)
                End If
            Case Else

            End Select

        End If

    Next i

Next cL

UFColor = hcnt

End Function

Function hitProc(whcnt)

    hitProc = whcnt + 1
End Function


 最後のFunction hitProc が抜け落ちていたのです。
 ぎりぎりセーフだったみたいで、ほっ。
 (kazu)

 「次の値と等しい」や「次の値と等しくない」に
 ="a"   ="◎"   ="●"
 の文字判定させても

 B1に
 =IF(C1="",3,100)
 の数式判定させても どちらも オッケー でした。

 =ufcolor(B:B)
 は2,3秒考えてましたー。

 もっと「隅」をほじくり返さねば...   (jun53)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.