• ベストアンサー

excel:日付け処理

Excelの表で、 B列には、C列のデータがある申請処理が済んでいる(1)か済んでいない(0)かのデータ、1,0が入っています。 C列の2行目から、所属期間が次のように入っています。 処理(B列):所属期間(C列) 1:2006/1/1~2/28 0:2006/1/1~3/1 1:2006/12/1~2006/1/31 0:2006/1/1~2/28 1:2006/1/1~3/1 1:2005/12/1~2006/1/31 1:2006/1/1~2/151:a~b(と説明のため表記) ------------------------- などの所属期間情報が日付の属性として入っているものとします。このときB列の値が0のものに対して、現在日を元に、(現在日-14)≦b値≦(現在日+14)を満足していれば、処理しなければいけないということでセルを黄色に表示するようにしたい。なおもし以上の処理をする前に色の付いたC列のセルがある場合は、いったん色をクリアしてから黄色付けするようにする。 以上をマクロで書くには、どうすればよいか。もしC列に対する処理が大変ならC列のa~bというデータが、最初からC列,D列に分離されているとしてもいいです。 よろしくお願いします。

  • taktta
  • お礼率72% (1031/1430)

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

=AND($A2=0,$B2+14>=TODAY(),$C2-14<=TODAY()) こんにちは。KenKen_SP です。久々のカキコで緊張気味です。 えーーと、確認です。 >(現在日-14)≦b値≦(現在日+14) このb値というのが良く分かりません。所属期間が本日の前後14日以内 であれば着色ということですか? VBA でもできるけど、条件付き書式の方が手軽で良いと思いますよ。 データはご質問の文末でご自身が仰ってますが、分離した方が良いでしょ う。例えば、C 列に文字列として 2005/12/15~2006/1/31 と入力するのはあまりオススメできません。データ入力の作業者によっ てバラツキがでそうですね。例えば上記の例では年をまたいでますが、 2005/12/15~1/31 と入力されたら場合はどうでしょう?人間の目で判定する分は問題ない ですけど、PC に計算させるなら、1/31 が 2005年なのか2006年なのか 不明瞭になりエラーの原因になります。 また、このような文字列を日付として再計算するのはエラー処理が必要 ですが、それでも完全に誤動作の予防は難しいでしょう。手間がかかる だけです。したがって、 処理  所属期間(自)  所属期間(至) のように列を分けて、日付として入力してもらった方が良いと思います。 状況がイマイチ掴めてませんので参考程度ですが、以下の様な数式を条件 付き書式に設定すれば良いかと思います。 =AND($B2=0,$C2+14>=TODAY(),$D2-14<=TODAY()) 恐らくこうだろうという推測で書きました。はずしてたら、すみません。

taktta
質問者

お礼

この通りです.おかげで解決しました。どうもありがとうございました。

その他の回答 (1)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

C,D列に分離してるならマクロでなくてもできると思いますよ。 C2:D2を選択して「書式」「条件付書式」 「数式が」「=AND($B2=0,$C2<TODAY()+14,$D2>TODAY()-14)」 で書式のパターンで黄色を選択 Bが0で且つ、C~Dの期間が今日から2週間前後の範囲のC,Dのセルを黄色く塗りつぶします。

taktta
質問者

お礼

おかげで解決しました。どうもありがとうございました。

関連するQ&A

  • EXCEL2003 重複データに色を付けるVBA

    A列のA2からA21に氏名、B列のB2からB21に住所が入力済です。A列で重複しているデータに色をつけて、さらに並び替えをしたいと思います。色は黄色、並び替えの設定は黄色で色を付けたセルがA2から順に表示するVBAを教えていただけませんでしょうか。またお手数でも列をB列、C列に変更した場合についても教えていただけませんでしょうか。VBAコードの貼り付けはできます。よろしくお願いします。

  • excel2010 その日付により特定の文字を入力

    A列セルには、2022/01/01~2022/03/31期間を連番で記載しています。 B列セルには、土曜日、日曜日、月曜日と連番で曜日を記載しています。  E列セルには、祭日や会社の定休日を2022/01/01、2022/3/21などと記載しています。 F列セルには、祭日や会社の定休日を年末年始休、春分の日などと記載しています。 土日については、=IF(WEEKDAY(A2,2)>=6,"休日","")でC列セルに『休日 』の文字を入れる事が出来ました。 祭日や会社の定休日についても、C列セルに『休日』の文字を入れたいのでですが、出し方が分かりませんでした、ご教示頂けると大変助かります。 データは下記の通りです。  A    B      C    D   E      F    日付   曜日   仕事オフ日     休日    休日名  2022/1/1 土曜日  休日        2022/1/1  年末年始休

  • excel日付データのセルに色つけ:マクロ

    Excelの表があります。 H列のH2セルから以下に、適当な数分“日付け及び時間データ”が入っています。データの最後の次は空白セルです。 そのデータに対して金曜日に薄い水色、土曜日に薄い黄色、日曜に薄い橙色というように色つけをしたい。マクロを作って処理したいのですがどうすればいいですか。 よろしくお願い致します。

  • (エクセルマクロ)複数の一連作業をマクロで行う処理について

    以下の一連の処理についてマクロのコードを一式で教えてください。 【エクセルの構成】 1.シート名 日付だけ都度変更する形式 (例:YYYYMM_教えてGoo) 2.表 列 AからAAまでデータあり 行 1行目はタイトル。2行目以降からデータ。 【処理手順】 1.表全体のフォントを「MS Pゴシック フォント9」にする。 2.1行目から11行目と13行目を削除 3.A列とD列削除 4.一行目の項目行にオートフィルタを設定 5.ウインドウ枠の固定(先頭行(一行目の項目行)の固定) 6.H列に文字が入ってる行のみ削除 7.E列とF列を昇順に並び替え(優先順位は(1)F列、(2)E列) 8.データの最終行の次の行のU列からZ列に表を入れる。 (例)5行目が最終データ行の場合  A…U V W X Y Z 1 ・ 5   6 A =SUM() 7 B 8 C     =SUM() (書式設定と詳細) セルU6 「文字列A」と入力し、背景は黄色、文字色は赤 セルV6 背景は黄色、文字色は赤 セルW6 背景は黄色、文字色は赤 セルX6 背景は黄色、文字色は赤 セルY6 背景は黄色、文字色は赤 セルZ6 数式入力(=SUM(Z$2:Z5(最終行))、背景は黄色、文字色は赤 セルU7 「文字列B」と入力し、背景は黄色、文字色は赤 セルV7 背景は黄色、文字色は赤 セルW7 背景は黄色、文字色は赤 セルX7 背景は黄色、文字色は赤 セルY7 背景は黄色、文字色は赤 セルZ7 背景は黄色、文字色は赤 セルU8 「文字列C」と入力し、背景は黄色、文字色は赤 セルV8 背景は黄色、文字色は赤 セルW8 背景は黄色、文字色は赤 セルX8 背景は黄色、文字色は赤 セルY8 背景は黄色、文字色は赤 セルZ8 数式入力(=SUM(Z6:Z7)、背景は黄色、文字色は赤 すべて掛け線なし 9.データ最終行(表も含む)から5行目全体をグレーにし、その行のA列に「データA」と入力。 10.I列に文字が入ってる行のみを切り取り、一番最後にデータが入ってる行から6行目(「データA」と入力した下の行から) から貼り付ける。(切り取った行は行削除し、上詰め) 11.データ最終行(切取貼り付けしたデータAを含む)から3行目全体を黄色にし、その行のA列に「データB」と入力。 12.X列の前に列を挿入し、挿入した列の一行目(項目行)に「タイトル」と記入。 13.挿入した列の2行目から前の列(W列)にデータが入ってる行まで数式(=ROUND(W2/1.05,0)※2行目に入力した場合)をコピー。 14.セルAB1に「No.」と記入。 15.G列からW列とY列からAA列を非表示にする。 6と8以降からマクロの自動記録ではできませんでした。 ご教授お願いします。

  • マクロにて空白のセルを一括して消去でなく削除したい

    空白のセルを一括して、空白セルについた色も含めてマクロで全て削除したい。 現在のデータ(仕様)について 1.Sheet2に列ごとにセルに色をつけ、データもあるとします。 2.A列10行・B列6行・C;列18行というように、列によってデータの入った範囲が違います。 3.どの行も途中に空白セルはなく、詰めたデータです。 以上です マクロで一括処理したいと思いますが、このようなことができるコードを教えて頂けませんか。よろしくお願いします。

  • EXCEL関数VLOOKUPで日付検索

    よろしくお願いいたします シート1 セルA(商品)  B(価格)  C(購入日) AAA      200円   2006/02/02 BBB      300円   2007/01/01 CCC      200円 DDD      200円   2005/03/03 シート2 セルA1(シート1の商品名入力) セルA3(購入日表示) 上の様なデーター表があるのですが 上記のやり方で行うと日付がランダムな数字で表示されます 例: 31456、24536など 原因がつかめません。。。 関数は以下の通りです(シート2セルA3) =IF(ISERROR(VLOOKUP(A1,Sheet1!$A$1:$C$60000,3,0)),"",VLOOKUP(A1,Sheet1!$A$1:$C$60000,3,0)) 空白セルがデーターに存在しても上記の関数で回避できると 書いてあったのでやってみたものの 結果を表示するセルには黄色のひし形みたいなものがでます。 クリックしてみると「空白セルを参照しています」との事です。 これが原因で日付エラーが出るのでしょうか? 関数の書き方などもご教授下さい。

  • Excel2002 条件付き書式

    A   B 3   2005/3/8 2   2007/7/8 5   休み A列が3以上でB列に日付が入っているセルのみB列のセルに色を付けることは可能ですか?? つまり上の表ではB2「2005/3/8」のセルに色が付くことになります。 おわかりの方教えてくださーい!

  • エクセルVBA 条件にあうときセルを塗りつぶすには?

    エクセルVBA 条件にあうときセルを塗りつぶすには? エクセルVBAについて教えてください。 _________A 列 _________B 列_________C列_________D列 -------------------------------------------- 1行| 基準値_________ 5_____________1____________8 2行| りんご____________1_____________9____________0 3行| みかん___________12___________5____________3 4行| ぶどう____________15___________7____________8 5行| バナナ____________3_____________1____________4 上図のようにデータがあります。 (実物は列行共に膨大です。また条件を4つ以上つける予定なので条件付書式は使えません) 各列の基準値に対して、セルの増減が、0以下のときに黄色に、5から8のとき大きくなるときに赤、9以上のときに青にセルの色を塗りつぶしたいです。 どのようにすればよいでしょうか? B列の場合、基準値が5です。 B2のセルの場合、基準値5と1(B2セル)の増減は-4です。 増減が0以下のときは黄色に、増減が5から8のときは赤に、増減が9以上のときに青にするので、このときは黄色に塗りつぶします。 B3のセルの場合、基準値5と12(B3セル)の増減は7です。 増減が5から8のとき赤に塗りつぶすので、このセルは赤に塗りつぶします。 B4のセルの場合、基準値5と15(B4セル)の増減は10です。 増減が9以上のとき青色に塗りつぶすので、このセルは青色に塗りつぶします。 C2のセルの場合は、C列の基準値は1(C1セル)です。 基準値1と9(C2のセル)の増減は8です。 増減が5から8のとき赤に塗りつぶすので、このセルは赤に塗りつぶします。 よろしくお願いいたします。

  • エクセルの日付について

    年月日のデータについて教えてください。 A列  B列 C列  2007  4  10 という様に、約5年分くらいの年・月・日が各セルに入っています。 D列に2007/4/10 と表記させたいのですが、どなたかご教授ください。

  • Excel2010の空白処理について

    A1*B1=C1 という式があり C1のセルに、空白処理をせずに  =A1*B1 を入れてA1とB1を空欄にしてもエラーになりません… これはなぜなんでしょう。 =A1/B1 だとエラーになりました。 教えて下さい!

専門家に質問してみよう