• 締切済み

エクセルの使い方を教えてください

下記のような表をエクセル2007で作成したいのですが、可能でしょうか。 (画像を参照ください) (1)エクセルのA1セルから、縦に0001、0002・・と昇順に数字を入力します(A1000セルまで)。 (2)エクセルのB1セルから、縦に2012/8/12(任意の日付)、2012/8/13・・と昇順に日付を入力します(B1000セルまで)。ただし、日付が欠けている場合もありますし、同じ日が続けて入力される場合もあります。 (3)毎週月曜日に、B列の日付がその1週間前の月曜から前日の日曜に該当する同じ行のA列のセルに自動的に色を付けます。例えば、今日が2012/8/20(月)としたら、B列の日付が2012/8/13(月)から2012/8/19(日)に該当する同じ行のA列のセルを自動的に黄色に塗りつぶします。そして、次の週の2012/8/27(月)が来たら、同様にB列の日付が2012/8/20(月)から2012/8/26(日)に該当する同じ行のA列のセルを自動的に黄色に塗りつぶします。そして次の週の月曜も同様です(以下、繰り返し)。 (4)作成したエクセルは毎日開きますが、次の月曜日が来るまでは、同じ場所に黄色が塗られた状態を維持します。例えば2012/8/21(火)~2012/8/26(日)に毎日エクセルを開いた時もB列の日付が2012/8/13(月)から2012/8/19(日)に該当する同じ行のA列のセルが自動的に黄色に塗りつぶされた状態を維持します。 いろいろ考えてはみたのですが、わかりませんでした。どうかお知恵をよろしくお願いいたします。 ●画像の文章が見づらいので、こちらに書いておきます (例) 2012/8/20(月)にB列が2012/8/13(月)~2012/8/19(日)に該当するA列の0002~0008が自動的に黄色に塗りつぶされる。2012/8/21(火)~2012/8/26(日)の毎日このエクセルを開いても0002~0008が黄色に塗りつぶされた状態が維持される。           ↓ 2012/8/27(月)にB列が2012/8/20(月)~2012/8/26(日)に該当するA列の0009~0015が自動的に黄色に塗りつぶされる。 2012/8/28(火)~2012/9/2(日)の毎日このエクセルを開いても0009~0015が黄色に塗りつぶされた状態が維持される。 (以下、月曜日毎に繰り返し)

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

A列を選択してから「ホーム」タブの「条件付き書式」で「新しいルール」を選択し、表示の画面で「数式を使用して…」にチェックしたのち数式の窓には =WEEKNUM(B1,2)=WEEKNUM(TODAY(),2)-1 を入力します。書式で「塗りつぶし」のタブで黄色を選択してOKすればよいでしょう。 古いバージョンでもA列を選択してから条件付き書式で数式を同じにすればよいですね。

Eukaryote
質問者

お礼

ご回答ありがとうございました。考え方を参考にさせていただきました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 WEEKNUM関数だけですと、例えば2012/8/20の日に、2012/8/20月~2012/8/26日だけではなく、2011/8/22月~2011/8/28日や2013/8/26月~2013/9/1日も黄色になってしまいますし、TDAY()が年の変わり目に近い日付で、塗り潰すべき期間が2つの年をまたいでいる場合には、TDAY()とは異なる年の日付が塗り潰されないままとなってしまいます。  ですから、次の様にされては如何でしょうか。 A1セルを選択   ↓ [ホーム]タブをクリック   ↓ 「スタイル」グループの中にある[条件付き書式]ボタンをクリック   ↓ 現れた選択肢の中から[ルールの管理]を選択してクリック   ↓ 現れた「条件付き書式ルールの管理」ダイアログボックスの[新規ルール]ボタンをクリック   ↓ 現れた「新しい書式ルール」ダイアログボックスの「ルールの種類を選択してください」欄の中にある[数式を使用して、書式設定するセルを決定]を選択してクリック   ↓ 「次の数式を満たす場合に値を書式設定」欄に次の数式を入力 =ABS(INT(INDEX($B:$B,ROW()))-TODAY()+WEEKDAY(TODAY(),3)-3)<4   ↓ 「新しい書式ルール」ダイアログボックスの[書式]ボタンをクリックをクリック   ↓ 現れた「セルの書式設定」ダイアログボックスの[塗りつぶし]タブをクリック   ↓ 現れた「背景色」の中にある黄色の四角形をクリック   ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック   ↓ 「条件付き書式ルールの管理」ダイアログボックスの「ルール(表示順で適用)」欄が「数式:=ABS(INT(...」となっている行の「適用先」欄の内容を $A$1 から $A$1:$A$1000 に変更する   ↓ 「条件付き書式ルールの管理」ダイアログボックスの[適用]ボタンをクリック   ↓ 「条件付き書式ルールの管理」ダイアログボックスの[OK]ボタンをクリック

Eukaryote
質問者

お礼

ご回答ありがとうございました。関数の使い方と考え方を参考にさせていただきました。

回答No.3

No1のesupuressoです たびたびすいません ^^; 月曜日~日曜日までの間に書式ということを見逃していました =WEEKNUM(TODAY())=WEEKNUM(B1,2) ← こちらの式をお使いください すいません <(_ _)>

Eukaryote
質問者

お礼

ご回答ありがとうございました。こんな関数があったのですね。参考にさせていただきました。

回答No.2

No1のesupuressoです 最後の1行の誤字に自分でもビックリ! ( ゜∀゜):∵ガ゛ハッ!! 誤「OK」→「OK」で小野簿身のセル範囲に書式が入ります 正「OK」→「OK」でお望みのセル範囲に書式が入ります←こう入力したつもりだったんですけど失礼しました^^;

回答No.1

A列に記入されている0001~000?まで範囲選択しておきます 「ホーム」タブ→「スタイル」グループ内の「条件付き書式」をクリック→「新しいルール」→「数式を利用して、書式設定をするセルを決定」→数式を入れる枠内に次の式を入れます =WEEKNUM(TODAY())=WEEKNUM(B1) と入れ、「書式」をクリック→「塗りつぶし」→「黄色」を選択→「OK」→「OK」→「OK」で小野簿身のセル範囲に書式が入ります