teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

修正

2021/12/03 03:44

投稿

退会済みユーザー
answer CHANGED
@@ -43,9 +43,9 @@
43
43
  は「2023/10/21」になります
44
44
   
45
45
  よってセルB1が「2021/10/21」ならば、条件付き書式に指定したカスタム数式は
46
- =COUNTIF(D2,"<2021/10/21”)
46
+ =COUNTIF(D2,"<2023/10/21”)
47
47
  と計算されるため、
48
- D2に指定したセルが2021/10/21前ならば「1」が返ってきます。
48
+ D2に指定したセルが2023/10/21より前ならば「1」が返ってきます。
49
49
  条件付き書式では、計算結果がゼロでなければ条件=正という意味になるので、
50
50
  カスタム数式の計算結果で「1」が返ってくる場合、指定した背景色が塗られます。
51
51
    

5

2021/12/03 03:44

投稿

退会済みユーザー
answer CHANGED
@@ -71,4 +71,4 @@
71
71
  B1セルにうるう年の2月29日を指定した場合、
72
72
  その2年後に29日が存在しないため、正しく計算されません。
73
73
   
74
- したがって、B!セルに2月29日が指定された場合は、「2年後の3月1日より前」という条件を作っています。
74
+ したがって、B1セルに2月29日が指定された場合は、「2年後の3月1日より前」という条件を作っています。

4

2021/12/02 14:47

投稿

退会済みユーザー
answer CHANGED
@@ -61,13 +61,14 @@
61
61
  というように、D40セルまで順番に自動的に設定されることになります。
62
62
 
63
63
  ---
64
+
64
65
  前半の
65
66
  ```
66
67
  if(and(month($B$1)=2,day($B$1)=29),COUNTIF(D2,"<"&year($B$1)+2&"/3/1")
67
68
  ```
68
69
  の部分は、うるう年を考慮したものです。
69
70
 
70
- D2セルにうるう年の2月29日を指定した場合、
71
+ B1セルにうるう年の2月29日を指定した場合、
71
72
  その2年後に29日が存在しないため、正しく計算されません。
72
73
   
73
- したがって、D2セルに2月29日が指定された場合は、「2年後の3月1日より前」という条件を作っています。
74
+ したがって、B!セルに2月29日が指定された場合は、「2年後の3月1日より前」という条件を作っています。

3

2021/12/02 14:46

投稿

退会済みユーザー
answer CHANGED
@@ -68,6 +68,6 @@
68
68
  の部分は、うるう年を考慮したものです。
69
69
 
70
70
  D2セルにうるう年の2月29日を指定した場合、
71
- その2年は同じ日が存在しないため、正しく計算されません。
71
+ その2年29日が存在しないため、正しく計算されません。
72
72
   
73
73
  したがって、D2セルに2月29日が指定された場合は、「2年後の3月1日より前」という条件を作っています。

2

追加

2021/12/02 14:43

投稿

退会済みユーザー
answer CHANGED
@@ -10,4 +10,64 @@
10
10
  =if(and(month($B$1)=2,day($B$1)=29),COUNTIF(D2,"<"&year($B$1)+2&"/3/1"),COUNTIF(D2,"<"&year($B$1)+2&"/"&month($B$1)&"/"&day($B$1)))
11
11
  ```
12
12
 
13
- ![イメージ説明](5d0316e387bf5a21fd9feb669f2eec6d.png)
13
+ ![イメージ説明](5d0316e387bf5a21fd9feb669f2eec6d.png)
14
+
15
+ ---
16
+ # 設定内容の詳細について
17
+ 数式後半の
18
+ COUNTIF(D2,"<"&year($B$1)+2&"/"&month($B$1)&"/"&day($B$1)))
19
+ から解説します。
20
+  
21
+ COUNTIFは、第一引数に指定したセル範囲のうち、第二引数の条件にあてはまるセルの数を返す関数です。
22
+ たとえば
23
+ ```
24
+ =COUNTIF(A2:A100,"<10")
25
+ ```
26
+ とした場合
27
+ **A2:A100の範囲で、10より小さい数を持つセルの個数**が返ってきます。
28
+
29
+ 第二引数には日付条件を付けることができます。
30
+ たとえば
31
+ =COUNTIF(A2:A100,"<2021/10/21") とすれば
32
+ A2:A100の範囲で、2021年10月21日より前の日付をもつセルの個数が返ってきます。
33
+
34
+ ```
35
+ COUNTIF(D2,"<"&year($B$1)+2&"/"&month($B$1)&"/"&day($B$1)))
36
+ ```
37
+ の後半「year($B$1)+2&"/"&month($B$1)&"/"&day($B$1))」
38
+ は、
39
+ セルB1に指定した年月日から、「年」を取り出して+2することで、「B1セルの2年後の日付」を作成しています。
40
+  
41
+ たとえばセルB1が「2021/10/21」ならば
42
+ year($B$1)+2&"/"&month($B$1)&"/"&day($B$1))
43
+ は「2023/10/21」になります
44
+  
45
+ よってセルB1が「2021/10/21」ならば、条件付き書式に指定したカスタム数式は
46
+ =COUNTIF(D2,"<2021/10/21”)
47
+ と計算されるため、
48
+ D2に指定したセルが2021/10/21以前ならば「1」が返ってきます。
49
+ 条件付き書式では、計算結果がゼロでなければ条件=正という意味になるので、
50
+ カスタム数式の計算結果で「1」が返ってくる場合、指定した背景色が塗られます。
51
+   
52
+ また、複数の範囲を選択して条件付き書式を設定した場合、数式に指定したセル番地は自動的に
53
+ 順番がずれてコピーされます。
54
+
55
+ 上記の場合、D2:D40の範囲を選択して条件付き書式を設定したので、
56
+ D2セルのカスタム数式には「=COUNTIF(D2,~)」
57
+ D3セルのカスタム数式には「=COUNTIF(D3,~)」
58
+ D4セルのカスタム数式には「=COUNTIF(D4,~)」
59
+ ....
60
+ ...
61
+ というように、D40セルまで順番に自動的に設定されることになります。
62
+
63
+ ---
64
+ 前半の
65
+ ```
66
+ if(and(month($B$1)=2,day($B$1)=29),COUNTIF(D2,"<"&year($B$1)+2&"/3/1")
67
+ ```
68
+ の部分は、うるう年を考慮したものです。
69
+
70
+ D2セルにうるう年の2月29日を指定した場合、
71
+ その2年前には同じ日が存在しないため、正しく計算されません。
72
+  
73
+ したがって、D2セルに2月29日が指定された場合は、「2年後の3月1日より前」という条件を作っています。

1

修正

2021/12/02 14:42

投稿

退会済みユーザー
answer CHANGED
@@ -7,7 +7,7 @@
7
7
  完了ボタンを押します。
8
8
 
9
9
  ```
10
- =if(and(month($B$1)=2,day($B$1)=29),COUNTIF(D2,">"&year($B$1)-2&"/2/28"),COUNTIF(D2,">"&year($B$1)-2&"/"&month($B$1)&"/"&day($B$1)))
10
+ =if(and(month($B$1)=2,day($B$1)=29),COUNTIF(D2,"<"&year($B$1)+2&"/3/1"),COUNTIF(D2,"<"&year($B$1)+2&"/"&month($B$1)&"/"&day($B$1)))
11
11
  ```
12
12
 
13
13
  ![イメージ説明](5d0316e387bf5a21fd9feb669f2eec6d.png)