Excel で前のセルが空白かどうかに基づいてセルの色を変更するにはどうすればよいですか?

Excel で前のセルが空白かどうかに基づいてセルの色を変更するにはどうすればよいですか?

スプレッドシートの列 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")) 型のチェックが正しく動作しなかったため、次のようにしました。

  1. 最初の生徒の出席日の3列目から開始
  2. 「条件付き書式」->「新しいルール...」をクリックします。
  3. 「数式を使用して書式設定するセルを決定する」を選択します。
  4. (出席者は1行目から始まり、日付はB列から始まると仮定して)=COUNTBLANK(B1:D1)>2この数式が当てはまる値をフォーマットする" 箱
  5. 「フォーマット...」をクリックします
  6. 「塗りつぶし」タブに移動し、赤を選択して「OK」をクリックします。
  7. [OK]をクリックします。

次に、セルの右下隅にある十字線をクリックして、行全体に書式をコピーします。もう一度十字線をクリックして、下の行に書式をコピーし、それらの行に対して繰り返します (何らかの理由で、この条件の書式を大量のセル範囲にコピーできませんでした)

関連情報