A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
#3の回答者です。
ダメならダメで結構なのですが、曲がりなりにもある時間を費やして、#3 でVBAの回答した私に対して、なぜ、そのようにコメント避けたのは分かりません。#3 で書いたように、元の質問を元にしては、VBAでは、情報が足りなくて、解決に完全な見通しは立たないということです。
いずれにしても、サンプルとしてレイアウトを示してもらったほうが早いかもしれません。回答者のいろんな想像に対して、あれこれ書いても、おそらく、情報が不足していて、うまく行かないような気がします。
たとえば、#4の補足の中の、B1 の同じセルに、残業時間と休日出勤があるのか、同じものなのか、良く理解できません。
B1が1月の残業時間、
B1が月の休日出勤時間、
C1がその2つの合計時間です。
おそらく、どこかに項目欄(例えば、A列)があるなら、SUMPRODUCT で、
=SUMPRODUCT((A1:A100="項目")*(B1:B100>=42)) 条件:42 (時間)
とすれば、カウントすることが出来るかと思います。
No.5
- 回答日時:
#1です。
そうゆう配置になっているなら、いったん最終行でそれぞれの列のCOUNTIFをとり、その合計を計算した方が簡単でしょうね。
500人いるなら、D501セルに一月分の小計
=COUNTIF(D1:D500,">42")
として、それを3列おきにコピーし12月の小計の後で501行目の合計を求めればOKでしょう。
この回答への補足
ご回答ありがとうございます。それだと例えば1月の休日の労働時間で42時間を越えた場合、休日労働時間とその月の合計労働時間で2回とカウントされてしまうのです。あくまで私がとりたいのはその月の合計労働時間において42時間以上かどうかなんです。でもその内訳である労働時間と休日労働時間の内訳も違う種類のカウントのときに必要なので、できれば消さずに今回の計算ができないか模索中です。
親身にご相談にのっていただき感動です。
もしかしたら無理なのかもしれないと思っています。
No.4
- 回答日時:
条件付き書式で色をつけた根拠は
(1)セルの値(の大小など)で色をつけたに違いない。
質問ではその条件を書いてくれれば考えやすかったが。
(A)そこでその条件をVBAのIF文やCASE文に置き換えてプログラムを組みカウントする方法もある。
例データ
11
2
21
15
25
8
9
33
コード
Sub test01()
Dim a(5)
For i = 1 To 8
x = Cells(i, "A")
Select Case x
Case Is > 40
a(1) = a(1) + 1
Case Is > 30
a(2) = a(2) + 1
Case Is > 20
a(3) = a(3) + 1
Case Is > 10
a(4) = a(4) + 1
Case Else
a(5) = a(5) + 1
End Select
Next i
For i = 1 To 5
MsgBox "a" & i & "= " & a(i)
Next i
End Sub
配列は0に初期化がよいかも。
8を自動的に採ることはできるが初心者あてなので略。
(B)上記のことは条件付書式の色はとりあえず、置いといて、そのの条件の量的な面に注目して、それに基づいて関数で該当分の件数を数えル方法もあるということだ。
上例でやると
右は関数式の内容
0=SUMPRODUCT((A1:A8>40)*1)
1=SUMPRODUCT((A1:A8<=40)*(A1:A8>30)*1)
2=SUMPRODUCT((A1:A8<=30)*(A1:A8>20)*1)
2=SUMPRODUCT((A1:A8<=20)*(A1:A8>10)*1)
3=SUMPRODUCT((A1:A8<=10)*(A1:A8>0)*1)
2007ならSUMIFSが使えるかも
(2)既にセルなりに設定されている色でカウントするら
やはりIF文やCASE文でプログラムコードを組む方法もある。
条件付書式は3種以下なので上例は不適当だが
Colorindexについて、上記(1)(A)のような(そっくりの)プログラムを組めばよい。
Select Case x
をSelect Case Cells(i,"A").interior。Colorindex にして。
ーー
しかし>VBAは初心者中の初心者です、なら上記のことも判らないかも知れないと思う。
配列
繰り返し
Case文
件数の取り方(該当したとき+1)
など経験者にはなんでもないことが、わかるかな。
この回答への補足
ご回答ありがとうございます。私は会社の総務をしています。そしてこの計算は労働時間の計算です。1行ごとに従業員が並んでいます。たとえばA1が鈴木さん、A2が佐藤さん、A3が山田さんです。列に月ごとに1月、2月、3月です。月の内訳として1月の残業時間と休日出勤時間、そしてその2つの時間の合計時間で1つの月の列が構成されています。たとえば鈴木さんであればB1が1月の残業時間、B1が月の休日出勤時間、C1がその2つの合計時間です。合計時間が42時間を越えている月が年間何回あるのかをカウントしたいのです。ですから残業時間と休日時間だけで42時間を越えているのはセルはカウントしたくないのです。計算しなければいけない従業員が500人前後、そして1年分となると計算労力が大変で困っています。ひとつよろしくお願いします。
補足日時:2008/03/08 20:31No.3
- 回答日時:
こんにちは。
#1/2 さんのご指摘の通りですね。理由は、条件付き書式で色のついているセルを数えるのは、セルオブジェクトの中では色を取得できませんから、難しいです。
>数えてほしくないセルである
なら、そういうセルを数えて引けばよいのですが、内容的に漠然としていますから、その種の回答としては、今は不可能です。
条件式を取り出して、個別に検索したほうが、早いし簡単だと思います。VBAでは、無理とは言いませんが、極端に面倒なコードになります。
少なくとも、条件式は分かりませんので、VBAでは、条件付き書式を取り出して、それをセルに戻して判定して、True をカウントするという方法しかないと思います。しかし、これは、数式で設定された場合のみであって、私の知っている範囲では、条件付き書式のFormatConditionの、True or False の判定のプロパティは持っていなかったと思います。
なお、これは、A1 方式のみになっていますので、R1C1方式の場合は、ConvertFormula の中を変えてください。コードとして無理があるのは承知の上です。
Sub TestMacro1()
Dim c As Range
Dim v As Variant
Dim a As String
Dim i As Long
Application.ScreenUpdating = False
For Each c In Range("A1", Range("A65536").End(xlUp))
For Each v In c.FormatConditions
c.Select
a = Application.ConvertFormula(v.Formula1, xlA1, xlA1, xlAbsolute)
If a Like "=*" Then
If Not IsError(Application.Evaluate(a)) Then
i = i + 1
End If
Else
MsgBox "現在のマクロでは、この条件付き書式は取れません!", 48
Exit Sub
End If
Next v
Next c
Application.ScreenUpdating = True
MsgBox i
End Sub
No.2
- 回答日時:
#1です。
COUNTIF関数は100以上のセルもカウントすることが出来ます。
質問者様が出来ないのは他に理由があるはずです。
「カウントしたいセルとカウントしたくないセルが同じ行にあります。条件付き書式はカウントしたい列に設定しています。そのカウントしたい列で100以上のセルの数を数えたい」
ではなく、もう少し具体的に示していただけると良い回答が付くと思いますよ。
例)
A1からB2500までのセルの中にある100を超える数字をカウントしたい。
=COUNTIF(A1:B2500,">100")
この回答への補足
#1様ありがとうございます。
=COUNTIF(A1:A10,">100")
で例えていいますとA1とA5、A9という3つのセルの中で100以上の数値のセルがいくつあるか表示させたいのです。
範囲指定でA1:A10としてしまうと、数えてほしくないセルであるA2,A3・・・の100以上のセルも拾ってしまうので困っています。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Visual Basic(VBA) VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカウントできる、VB 2 2022/04/06 21:33
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
- Excel(エクセル) 条件付き書式の色付きセルのカウント方法について 2 2022/10/21 14:51
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) Excel アクティブセルのみ条件付き書式の色を他の色にしたい。 4 2022/06/11 22:19
- Excel(エクセル) エクセル 条件に合う日付に入力された時間数の合計したい 4 2022/06/17 22:18
- Visual Basic(VBA) エクセル VBA 条件によるセル点滅 お詳しい方 ご教授をお願いします。 Excelファイルにて 現 1 2022/11/03 15:53
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
E列のセルに数値が入れば(空白...
-
Excel にて条件付き書式の色に...
-
条件付書式で「=#N/A」に色を付...
-
エクセルで特定の数字等を表示...
-
エクセルの枠の中の文字が青文...
-
条件付き書式で、結果が1行ずれる
-
Excelの条件付き書式にて空白セ...
-
エクセル 条件付き書式で色をつ...
-
エクエルで隣のセルの文字が赤...
-
条件付き書式で太罫線を引く方法
-
エクセルで一定期間が経過した...
-
Excelで2つのファイルを比較し...
-
Excelのテキストボックスでフォ...
-
【エクセル】シフトで○が6個以...
-
セル結合させてるときの 条件...
-
セルの値が空白じゃないなら色...
-
マクロ、条件付き書式のfont.color
-
エクセルでカーソルのある行を...
-
エクセルで日付を入力したらカ...
-
【エクセル】今日の日付に赤枠...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
E列のセルに数値が入れば(空白...
-
Excel にて条件付き書式の色に...
-
条件付書式で「=#N/A」に色を付...
-
条件付き書式で、結果が1行ずれる
-
エクセルの枠の中の文字が青文...
-
エクセルで特定の数字等を表示...
-
Excelの条件付き書式にて空白セ...
-
エクセル 条件付き書式で色をつ...
-
条件付き書式で太罫線を引く方法
-
エクセル内で複数の文字(50個ぐ...
-
エクエルで隣のセルの文字が赤...
-
セル結合させてるときの 条件...
-
Excelについて あるセルに文字...
-
エクセルで一定期間が経過した...
-
条件付き書式を教えてください
-
Excelで2つのファイルを比較し...
-
エクセルで1以上は全て1にするには
-
エクセルでカーソルのある行を...
-
エクセルで日付を入力したらカ...
-
【エクセル】今日の日付に赤枠...
おすすめ情報