スプレッドシートの列 A に名前があります。出席者がいる場合は、それ以降の各列に「X」を付けて (週ごとに) 出席状況を記録しています。
Excel で、セルとその前の 2 つのセルが空白の場合にセルの範囲を自動的に赤に変更し、誰かが 3 週間連続で欠勤した場合に赤で表示するようにしたいと思います。
Excel 2010 を使用してこれを実現するにはどうすればよいですか?
答え1
chuff のコメントにあるように、条件付き書式設定でこれを行うことができます。Excel では書式設定するセルを直接参照することが簡単にできないため、実際に必要な数式を作成するのはかなり難しいです。この困難を回避するソリューションを次に示しますが、これは最もエレガントなソリューションからは程遠いものであることは確かです。
=3=COUNTBLANK(INDIRECT(CHAR(COLUMN()+62)&ROW()&":"&CHAR(COLUMN()+64)&ROW()))
ここでの考え方は、ROW() と COLUMN() を使用して、対象範囲 (書式設定するセルとその左隣の 2 つのセル) を含む文字列を作成し、次に INDIRECT() がその範囲への参照を作成することです。COUNTBLANK() の機能は明らかだと思います。
編集:以下のコメントにもあるように、あなたのリクエストには曖昧さがあります。上記の式は、あなたが望むものなら機能するはずです。3番目の欠席からハイライトを開始しますつまり、ちょうど 3 回の欠席が続く場合、3 回目だけが強調表示されます。代わりに、長さが 3 以上の欠席の連続全体を強調表示したい場合もあります。
さらに見栄えは悪いですが、私のソリューションは確かにそれを実行できるように拡張できます。上記では、セルが 3 つの連続の最後かどうかを確認します。また、そのような連続の途中か最初かを確認し、全体を OR で結合することもできます。
=OR(
3=COUNTBLANK(INDIRECT(CHAR(COLUMN()+62)&ROW()&":"&CHAR(COLUMN()+64)&ROW())),
3=COUNTBLANK(INDIRECT(CHAR(COLUMN()+63)&ROW()&":"&CHAR(COLUMN()+65)&ROW())),
3=COUNTBLANK(INDIRECT(CHAR(COLUMN()+64)&ROW()&":"&CHAR(COLUMN()+66)&ROW())),
)
答え2
COUNTBLANK または IF(OR({Cell}="x")) 型のチェックが正しく動作しなかったため、次のようにしました。
- 最初の生徒の出席日の3列目から開始
- 「条件付き書式」->「新しいルール...」をクリックします。
- 「数式を使用して書式設定するセルを決定する」を選択します。
- (出席者は1行目から始まり、日付はB列から始まると仮定して)
=COUNTBLANK(B1:D1)>2
「この数式が当てはまる値をフォーマットする" 箱 - 「フォーマット...」をクリックします
- 「塗りつぶし」タブに移動し、赤を選択して「OK」をクリックします。
- [OK]をクリックします。
次に、セルの右下隅にある十字線をクリックして、行全体に書式をコピーします。もう一度十字線をクリックして、下の行に書式をコピーし、それらの行に対して繰り返します (何らかの理由で、この条件の書式を大量のセル範囲にコピーできませんでした)