
No.2ベストアンサー
- 回答日時:
(´・ω・`)
”○” の数を数えるんじゃないんだよなあ。
・・・本題・・・
条件付き書式ですよね。
シート2のリストの並び順は
aaa
ccc
bbb
ddd
では「Aチーム」と認識しないという事でよろしいでしょうか?
ならば、とても簡単です。
シート2の一覧において、
判定するセル1
判定するセル2
判定するセル3
色を付けるセル
判定するセル4
判定するセル5
判定するセル6
という範囲について調べれば良いという事。
判定するセル1
判定するセル2
判定するセル3
色を付けるセル
判定するセル2
判定するセル3
色を付けるセル
判定するセル4
判定するセル3
色を付けるセル
判定するセル4
判定するセル5
色を付けるセル
判定するセル4
判定するセル5
判定するセル6
の4パターンについてそれぞれ調べれば良いだけ。
自分なら
aaa-bbb-ccc-ddd
のようにシート1から文字列を作り、それが調べるセルで同じパターンになるかを調べます。
シート1はA5セルから、シート2はA11セルからデータが入力されているなら、
シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A11 & A12 & A13 & A14
シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A12 & A13 & A14 & A15
シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A13 & A14 & A15 & A16
シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A14 & A15 & A16 & A17
という条件になる。
この4つのうちの一つでも条件を満たせばセルに赤色を付ければいい。
「Bチーム」についても同様にすればいいので、
この場合、8つの条件式を設定することになります。
面倒でもこの考え方ができていないと、ちょっと条件が変わっただけで対処できずに終わります。
冒頭で「並び順」について書きましたが、並び順がシート1のリストの通りでなくとも色を付けたい場合でも、この考え方は必要ということです。
・・・
ちなみに厄介なのが、どちらのチームにも「ccc」がいるというところかな。
これが無ければ違う方法でシンプルにできるんですけどねえ。
この回答へのお礼
お礼日時:2019/02/28 17:27
VBAが素人なので条件付き書式で出来る事が分かって本当に助かりました。
お知恵を頂いたおかげで思うようなフォーマットを作成する事が出来ました。
ありがとうございます^_^
No.6
- 回答日時:
No5です
No5の②の場合でも、なんとか条件付き書式で対応可能そうな気がしてきました。
ただし、いずれの場合も、No2様の説明にあるように、4種類の組み合わせをチェックすることで1色分の条件となりますので、設定する式はそれなりに長いものとなることが予想されます。
No.5
- 回答日時:
こんにちは
ご質問文で、色を付けるための条件が少々はっきりしません。
① 出現順がリスト通りの順で(4種類)出現したら
② 順序は問わないが、同じチーム内の4種類のメンバー全てが連続したら
③(種類も順も問わずに)同じチームのメンバーが4つ連続したら(重複含む)
④ その他の解釈
①または③であれば、条件付き書式でも対応可能ですが、②の場合は結構難しそうですね。
④の場合は、今のところは検討がつきません。
No.4
- 回答日時:
No.3です。
投稿後気づきました。
Sheet2のデータは同じ列にあるのですね。
前回のコードは消去して、↓のコードに変更してください。
尚、Sheet2のデータはA列にあるとします。
Sub Sample2()
Dim i As Long, myR As Range, wS As Worksheet
Dim myStr As String, buf1 As String, buf2 As String
Set wS = Worksheets("Sheet2")
wS.Range("A:A").Interior.ColorIndex = xlNone
With Worksheets("Sheet1")
buf1 = .Range("A1") & "_" & .Range("A2") & "_" & .Range("A3") & "_" & .Range("A4")
buf2 = .Range("B1") & "_" & .Range("B2") & "_" & .Range("B3") & "_" & .Range("B4")
For i = 1 To wS.Cells(Rows.Count, "A").End(xlUp).Row - 3
Set myR = wS.Cells(i, "A").Resize(4)
myStr = myR(1) & "_" & myR(2) & "_" & myR(3) & "_" & myR(4)
If myStr = buf1 Then
myR.Interior.ColorIndex = 3
ElseIf myStr = buf2 Then
myR.Interior.ColorIndex = 6
End If
Next i
End With
End Sub
※ データ変更があるたびにマクロを実行する必要があります。m(_ _)m
No.3
- 回答日時:
こんにちは!
Sheet1のA1~A4、B1~B4に各名前定義したデータがあるとします。
Sheet2のA・B列のデータの並びはSheet1のA・B列と同じ並びでかつ、
その4行のセルに色付けをしなければならないのですよね。
条件付き書式で色々やってみたのですが、
仮にSheet2のA列に aaa,bbb,ccc,ddd と並んでいる場合最初の「aaa」にだけ色付けするのが精いっぱいでした。
当方の力不足だと思います。
そこでお望みでないかもしれませんが、VBAでの一例です。
標準モジュールにしてください。
尚、条件付き書式が設定してあるとそちらが優先されますので、
Sheet2の条件付き書式は設定していない!とします。
Sub Sample1()
Dim i As Long, myR As Range, wS As Worksheet
Dim myStr As String, buf As String
Set wS = Worksheets("Sheet2")
Range("A:B").Interior.ColorIndex = xlNone
With Worksheets("Sheet1")
buf = .Range("A1") & "_" & .Range("A2") & "_" & .Range("A3") & "_" & .Range("A4")
For i = 1 To wS.Cells(Rows.Count, "A").End(xlUp).Row - 3
Set myR = wS.Cells(i, "A").Resize(4)
myStr = myR(1) & "_" & myR(2) & "_" & myR(3) & "_" & myR(4)
If buf = myStr Then
myR.Interior.ColorIndex = 3
End If
Next i
buf = .Range("B1") & "_" & .Range("B2") & "_" & .Range("B3") & "_" & .Range("B4")
For i = 1 To wS.Cells(Rows.Count, "B").End(xlUp).Row - 3
Set myR = wS.Cells(i, "B").Resize(4)
myStr = myR(1) & "_" & myR(2) & "_" & myR(3) & "_" & myR(4)
If buf = myStr Then
myR.Interior.ColorIndex = 6
End If
Next i
End With
End Sub
とりあえずはお望みの結果になると思います。m(_ _)m
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
Excelでスクロールすると文字が...
-
VBA セル間のリンク修正につい...
-
日付が未入力の際はゼロか、空...
-
シート参照で変数を使いたい(EX...
-
Excelシートの保護時にデータの...
-
エクセルについて
-
複数シートの同じセル内容を1シ...
-
別シートのセルを絶対参照にする
-
エクセルで複数のシートの同じ...
-
エクセルで条件に一致したセル...
-
エクセルで複写のように自動入...
-
Office2021のエクセルで米国株...
-
EXCEL関数でシート名が変わる可...
-
(Excel)あるセルに文字を入力...
-
労基法の週40時間を超える時...
-
エクセル マクロ ボタンを押...
-
Excel 計算式の中で使っている...
-
EXCEL2007で行の高さと列の幅を...
-
エクセルで1月0日と表示される!!
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
VBA セル間のリンク修正につい...
-
エクセルで1月0日と表示される!!
-
日付が未入力の際はゼロか、空...
-
Office2021のエクセルで米国株...
-
Excelで複数シートの選択セルを...
-
Excelシートの保護時にデータの...
-
エクセルで条件に一致したセル...
-
エクセルで、加筆修正したセル...
-
Excelでスクロールすると文字が...
-
エクセルで複写のように自動入...
-
ExcelでTODAY関数を更新させな...
-
(Excel)あるセルに文字を入力...
-
複数シートの同じセル内容を1シ...
-
エクセルで指定のセルのみ完全...
-
エクセル ハイパーリンクで画像...
-
エクセルで複数のシートの同じ...
-
エクセルについて
-
EXCELのハイパーリンクのセルを...
-
エクセルで別シートからの最大...
おすすめ情報