更新:2024/9/4;作成:2017/06/07
- 条件を数式で設定して、その条件に合致したらセルに書式を設定することができます。
ここでは下記のようなオーソドックスな成績表を使って説明します。
|
B |
C |
D |
E |
F |
2 |
名前 |
国語 |
数学 |
英語 |
合計 |
3 |
飯尾 雅文 |
80 |
90 |
92 |
262 |
4 |
井上 達也 |
35 |
57 |
54 |
146 |
5 |
勝谷 隆一 |
86 |
91 |
87 |
264 |
6 |
鶴岡 和男 |
75 |
96 |
85 |
256 |
7 |
的早 弘通 |
68 |
55 |
64 |
187 |
8 |
西崎 敬次 |
74 |
71 |
50 |
195 |
9 |
菊地 和温 |
66 |
55 |
75 |
196 |
10 |
堀川 勝之 |
66 |
75 |
88 |
229 |
11 |
盛田 江利子 |
57 |
54 |
59 |
170 |
12 |
田路 覚 |
64 |
79 |
64 |
207 |
13 |
宮田 吉隆 |
81 |
79 |
87 |
247 |
14 |
西村 正深 |
58 |
86 |
62 |
206 |
15 |
福嶋 東 |
92 |
89 |
88 |
269 |
- 数式で条件を書くのに IF関数がわかりやすいという方は、IF関数を使って条件を書けばよいと思います。
例えば、上記の国語の得点が60未満のセルを赤色に塗りつぶしたいと思います。
- セルを塗りつぶしたい範囲を選択します。(条件付き書式を設定するセル範囲を選択します)
ここでは、C3:C15 セルを選択します。
- [ホーム]タブの[条件付き書式]→[ルールの管理]を選択します。
[新しいルール]を選択してもOKです。
- 書式ルールの表示が「現在の選択範囲」になっているのを確認します。
[新規ルール]ボタンをクリックします。
- 「数式を使用して、書式設定するセルを決定」を選択します。
次の数式を満たす場合に値を書式設定にIF関数を使った条件式を入力します。
ここでは =IF(C3<60,TRUE,FALSE) としました。
- =IF(C3<60,"TRUE","FALSE") 、 =IF(C3<60,TRUE) としてもOKです。
数式で 論理値 TRUE が返されれば、そのセルには条件付き書式で設定した書式が施されるので、IF関数で TRUE となるようにすればよいということになります。
"TRUE" は文字列ですが、Excelの内部で論理値(TRUE)に変換されているようです。
- [書式]ボタンをクリックして、セルの書式を設定します。
[塗りつぶし]タブを選択して、セルを塗りつぶす色(赤)を選択しました。
- 「適用」ボタンをクリックすると、期待したように書式が設定されるか否かを確認することができます。
期待したように設定できない場合は、[ルールの編集]をクリックして条件式などを見直しします。
良かったら、[OK]ボタンをクリックします。
- シートの選択していたセル範囲 C3:C15に 条件付き書式が設定できました。
- ちなみに、IF関数を使わずに、論理式で条件を書くと =C3<60 となります。
IF関数の構文は =IF(論理式,真の場合,偽の場合)ですので、「真となる論理式」を書けばよいことになります。
つまり、IF文の論理式の数式を書くことになります。
- 掲示板にて質問を受けた件です。以下の条件付き書式を作成したいとのことでした。(記 2021/9/23)
携帯電話の場合はハイフン込みで頭が070・080・090の時に13桁に満たない、
または超えている時に色を付ける。
固定電話の場合はハイフン込みで12桁に満たない、
または超えている時に色を付ける。
- これを図示すると下図のようになると思います。
ポイントとなるのは塗りつぶさないセルの条件の書き方と思います。
ここではルール1とルール3の「塗りつぶす」ではなく「塗りつぶさない」方法がポイントと思います。
ルール1で携帯電話番号の13桁が入力されているセルの書式で、塗りつぶしは色なしとなります。
↓
ルール2で携帯電話番号の12桁が入力されているセルは薄いオレンジ色に塗りつぶします。
↓
ルール3で電話番号の入力が12桁の場合は、セルの書式で塗りつぶしは色なしとなります。
↓
ルール4で未入力以外のセル(何か入力されているセル)は薄い黄色で塗りつぶします。
- 論理式で書く場合は以下のようになると思います。
ルールの順番が重要ですので、ご注意ください。
ルール1
入力されている文字列の左から3個が"070","080","090"であり、文字の長さが13個の場合は携帯電話の番号とみなす。
=((LEFT(A1,3)="070")+(LEFT(A1,3)="080")+(LEFT(A1,3)="090"))*(LEN(A1)=13)
書式:色なし
ルール2
入力されている文字列の左から3個が"070","080","090"であり、文字の長さが12個の場合は携帯電話の番号ではないとする。
=((LEFT(A1,3)="070")+(LEFT(A1,3)="080")+(LEFT(A1,3)="090"))*(LEN(A1)=12)
書式:塗りつぶす
ルール3
携帯電話の12桁はすでにルール2で色を付けているので、ここでは一般加入電話の12桁に関したルールになりますので、処理機では色なしとします。
=LEN(A1)=12
書式:色なし
ルール4
塗りつぶさないもの、携帯電話の13桁と一般加入電話の12桁以外の入力されている全てのセルを塗りつぶします。
=A1<>""
書式:塗りつぶす
- 以下の図のような結果になりました。
- IF関数で書く場合は
=IF(AND(OR(LEFT(A1,3)="070",LEFT(A1,3)="080",LEFT(A1,3)="090"),LEN(A1)=13),TRUE,FALSE)
または
=IF(OR(LEFT(A1,3)="070",LEFT(A1,3)="080",LEFT(A1,3)="090"),IF(LEN(A1)=13,TRUE,FALSE),FALSE)
=IF(AND(OR(LEFT(A1,3)="070",LEFT(A1,3)="080",LEFT(A1,3)="090"),LEN(A1)=12),TRUE,FALSE)
=IF(LEN(A1)=12,TRUE,FALSE)
=IF(A1<>"",TRUE,FALSE)
または
=IF(A1="",FALSE,TRUE)
- 下図のように同じ結果が得られました。