![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
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 (時間)
とすれば、カウントすることが出来るかと思います。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_03.png?a65a0e2)
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
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_03.png?a65a0e2)
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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件付書式で「=#N/A」に色を付...
-
E列のセルに数値が入れば(空白...
-
Excel にて条件付き書式の色に...
-
Excelの条件付き書式にて空白セ...
-
条件付き書式で、結果が1行ずれる
-
【Excel】条件付き書式で 0では...
-
エクセルで特定の数字等を表示...
-
【エクセル】シフトで○が6個以...
-
エクセルで1以上は全て1にするには
-
条件付き書式で太罫線を引く方法
-
エクセル:文字色を認識して○×...
-
【エクセル】今日の日付に赤枠...
-
エクセルの枠の中の文字が青文...
-
エクエルで隣のセルの文字が赤...
-
セルの値が空白じゃないなら色...
-
エクセル内で複数の文字(50個ぐ...
-
セル結合させてるときの 条件...
-
Excelのテキストボックスでフォ...
-
ピボットテーブルオプション「...
-
エクセルでシート参照する場合...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件付書式で「=#N/A」に色を付...
-
E列のセルに数値が入れば(空白...
-
条件付き書式で、結果が1行ずれる
-
Excel にて条件付き書式の色に...
-
エクセルで特定の数字等を表示...
-
Excelの条件付き書式にて空白セ...
-
【Excel】条件付き書式で 0では...
-
エクセルの枠の中の文字が青文...
-
エクセルで1以上は全て1にするには
-
エクセル内で複数の文字(50個ぐ...
-
一つ上のセルと同じセルに色を...
-
セル結合させてるときの 条件...
-
エクセル:文字色を認識して○×...
-
Excel 条件付書式 今日より3日...
-
【エクセル】シフトで○が6個以...
-
Excelについて あるセルに文字...
-
条件付き書式で太罫線を引く方法
-
【エクセル】今日の日付に赤枠...
-
エクセル 条件付き書式で色をつ...
-
ピボットテーブルオプション「...
おすすめ情報