- 締切済み
誕生日までの残り日数
excelのG1からG20に生年月日を入力してあります。F列には名前が入っています。 この生年月日を元に、次の誕生日までの日数を調べる方法を教えてください。 佐藤一郎 2000/8/26 Happy Birthday 鈴木次郎 1000/8/27 1 上のように残り日数が0のとき、つまり今日が誕生日の時はHappy Birthdayと表示させたいです。 また、今日が誕生日の時は 名前、生年月日、Happy Birthdayの文字のセルを青で塗りつぶしたいと思っています。 このようなことはできるのでしょうか? どうやっていいのかわからないので、教えてほしいです。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
G列に生年月日があると、誕生日を表す文字列は =text(G1,"mmdd") と書けます。これと今日の日付text(today(),"mmdd")の差 =text(G1,"mmdd")-text(today(),"mmdd") が「今年の」誕生日までの日数です。ここでその符号に注目して 正の値:そのままの数値を返す ゼロ: "Happy Birthday"を返す 負の値:来年の誕生日までの日数を返す なので、sign関数とchoose関数を使って分岐条件を書くと =choose(sign(text(G1,"mmdd")-text(today(),"mmdd"))+2,負,零,正) となり、来年の誕生日はdate(year(today())+1,month(G1),day(G1)) なので全体は =choose(sign(text(G1,"mmdd")-text(today(),"mmdd"))+2, date(year(today())+1,month(G1),day(G1))-today(), "Happy Birthday", text(G1,"mmdd")-text(today(),"mmdd")) となります。
- gyouda1114
- ベストアンサー率37% (499/1320)
画像でH2に =IF(DATE(YEAR(TODAY()),MONTH(G2),DAY(G2))-TODAY()=0,"Happy birthday",IF(DATE(YEAR(TODAY()),MONTH(G2),DAY(G2))-TODAY()<1,DATE(YEAR(TODAY())+1,MONTH(G2),DAY(G2))-TODAY(),DATE(YEAR(TODAY()),MONTH(G2),DAY(G2))-TODAY())) 下方にオートフィル 条件付き書式でH2から下方を選択し 条件付き書式 → 新しいルール → 「数式を使用して、書式設定をするセルを決定」 → 次の数式を満たす場合に値を書式設定の欄に=$H3="Happy Birthday" → 書式で塗りつぶしの色を設定
- KURUMITO
- ベストアンサー率42% (1835/4283)
F列に名前、G列に生年月日、H列に誕生日までの残り日数や当日にはHappy Birthdayと表示し、また、誕生日には文字のセルを青で塗りつぶすのでしたら次のようにします。 H1セルには次の式を入力し下方にオートフィルドラッグします。 =IF(TODAY()>DATE(YEAR(TODAY()),MONTH(G1),DAY(G1)),DATEDIF(TODAY(),DATE(YEAR(TODAY())+1,MONTH(G1),DAY(G1)),"d"),IF(TODAY()=DATE(YEAR(TODAY()),MONTH(G1),DAY(G1)),"Happy Birthday",DATEDIF(TODAY(),DATE(YEAR(TODAY),MONTH(G1),DAY(G1)),"d"))) 文字のセルを青く塗りつぶすためには次にようにします。 エクセル2007の例ですが F1からH20までのセル範囲を選択します。 「ホーム」タブから「条件付き書式」をクリックし「ルールの管理」を選択します。 「新規ルール」をクリックします。 「数式を使用して、書式設定するセルを決定」を選択します。 数式の窓には次の式を入力します。 =$H1="Happy Birthday" 「書式」をクリックして「塗りつぶし」のタブで背景色に青色を選択しOKします。