- ベストアンサー
行の時の日付表示の仕方
いつもお世話になります。 WindowsXP Excell2003です。 列での日付の表示で 月ごとに変わる 31、30、28、29日の日付を下記の式で対応をしています。 B1 2010 C1 1 A1 =DATE(B1,C1,1) 2010/1/1 A2 =IF(MONTH(A$1+ROW(A1)-1)=MONTH(A$1),A$1+ROW(A1)-1,"") 01 A3 =IF(MONTH(A$1+ROW(A2)-1)=MONTH(A$1),A$1+ROW(A2)-1,"") 02 ・ ・ ご教示をいただきたいのは 行で A2~ 日付を表示するときの数式です。 B1 2010 C1 1 A1 =DATE(B1,C1,1) 2010/1/1 A2 ~ よろしく御願いします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (6)
- tom04
- ベストアンサー率49% (2537/5117)
No.5です! たびたびごめんなさい。 前回は大きく外していました。 B1には「年」・C1には「1」が必ず入力されているとして、 A2セルの数式を =IF(MONTH(DATE($B$1,$C$1+ROW(A1)-1,COLUMN(A1)))=ROW(A1),DATE($B$1,$C$1+ROW(A1)-1,COLUMN(A1)),"") として列方向と行方向にコピーしてみてください。 尚、今回も外していたらごめんなさいね。m(__)m
お礼
大変お手数掛け有難うご゛いました。 今後ともご指導賜りますようよろしく御願いします。
- hana-hana3
- ベストアンサー率31% (4940/15541)
>ご教示をいただきたいのは 行で A2~ 日付を表示するときの数式です。 式を提示すればよいのですか? 定型式なら、フィルコピーで簡単に作成が基本かも。 毎月28日までは確実にあるので、日付を加算。 29日以後は加算後に月が変わるかどうかで判定し、 その月が終わり(上のセルが空白)なら空白を表示。 ------------------------------------------------- A1:=DATE(B1,C1,1) A2:=A1 A3:=A2+1 : A29:=A28+1 A30:=IF(MONTH(A29)=MONTH(A29+1),A28+1,"") A31:=IF(A30="","",IF(MONTH(A30)=MONTH(A30+1),A30+1,"")) A32:=IF(A31="","",IF(MONTH(A31)=MONTH(A31+1),A31+1,"")) とか、 A30:=IF(A29+1<=DATE(YEAR(A29),MONTH(A29)+1,0),A29+1,"") A31:=IF(A30="","",IF(A30+1<=DATE(YEAR(A30),MONTH(A30)+1,0),A30+1,"")) A32:=IF(A31="","",IF(A31+1<=DATE(YEAR(A31),MONTH(A31)+1,0),A31+1,""))
お礼
大変お手数掛け有難うご゛いました。 今後ともご指導賜りますようよろしく御願いします。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! せっかく数式を考えていらっしゃるので、 余計なお世話になるかもしれませんが・・・ A1セルの書式設定の表示形式をユーザー定義から d としておきます。 そして、A1セルに =IF(COUNTBLANK($B$1:$C$1)>0,"",IF(MONTH(DATE($B$1,$C$1,ROW(A1)))=$C$1,DATE($B$1,$C$1,ROW(A1)),"")) という数式を入れ、オートフィルで31日までコピーしてはどうでしょうか? これで大の月・小の月の対応も出来るはずです。 尚、数式の前半部分はB1・C1セルが空白の場合のエラー処理ですので それを考えなければ =IF(MONTH(DATE($B$1,$C$1,ROW(A1)))=$C$1,DATE($B$1,$C$1,ROW(A1)),"") でもOKだと思います。 以上、参考になれば幸いです。m(__)m
お礼
大変お手数掛け有難うご゛いました。 今後ともご指導賜りますようよろしく御願いします。
- keithin
- ベストアンサー率66% (5278/7941)
多分ご質問の直接の回答としては, 縦↓に数字を1,2,3と増やすにはROW関数 横→に数字を1,2,3と増やすにはCOLUMN関数 がそれぞれ使えます。使い方はほぼ一緒です。 #以下余談 >31、30、28、29日の日付を下記の式で対応をしています 割と多くの皆さんが,上から下まで(左から右まで)同じ数式で計算できた方が綺麗だと感じていらっしゃるのでしょうけど,現実的には「1日から28日まで」は,何月であっても""にはなりません。IF判定する必要は最初から無いというお話しです。 A1: =DATE(年セル,月セル,1) A2: =DATE(年セル,月セル,2) (勿論ROW/COLUMNで2の代わりは可) A3: =DATE(年セル,月セル,3) 29日のセル: =IF(MONTH(DATE(年,月,29)=月セル,DATE(年,月,29),"") 30日のセル: =IF(MONTH(DATE(年,月,ROW(A30))=月セル,DATE(年,月,ROW(A30)),"") 31日のセルも同じ。
お礼
大変お手数掛け有難うご゛いました。 今後ともご指導賜りますようよろしく御願いします。
答えにはなってないと思いますが、EXCELの「日付」は、基本的に「シリアル番号」という代物を使って日付を計算しています。 あなたが示した数式を、A2、A3に入れて、それぞれのセルを右クリック→「セルの書式設定」→「表示形式」タブ→「日付」を左側リストからクリック →右側の「種類」内からご希望の表示形式を選んでいただければ、何の問題も無いと思います。 それに、月によって最終日が異なる場合でも、EXCELの「シリアル番号」ひとつで、すぐに割り出してくれます。(無駄に28~31日までの対応した数式を用意する必要はありません。) これが、EXCELの便利な点です。 今のところ、シリアル値から日付をスバリ割り出す関数はありませんが、もうちょっと手間を掛けたいなら、 セルA2の場合、 =YEAR(IF(MONTH(A$1+ROW(A1)-1)=MONTH(A$1),A$1+ROW(A1)-1,""))&"/"&MONTH(IF(MONTH(A$1+ROW(A1)-1)=MONTH(A$1),A$1+ROW(A1)-1,""))&"/"&DAY(IF(MONTH(A$1+ROW(A1)-1)=MONTH(A$1),A$1+ROW(A1)-1,"")) で、ご希望の表示にできますし、YEAR , MONTH , DAY の間の 「&"/"&」の " "(ダブルクォーテーション)内は、「年」「月」「日」のように、適宜に変える事が出来ます。 分かりにくくてスミマセン。 多分、後者の方が、ご質問の趣旨に沿った形かもしれません。
お礼
大変お手数掛け有難うご゛いました。 今後ともご指導賜りますようよろしく御願いします。
- DIooggooID
- ベストアンサー率27% (1730/6405)
ご質問は、今ご自身で作成した数式以外のものに変更なさりたいということですか? ご参考 http://www.eurus.dti.ne.jp/~yoneyama/Excel/ex-q-a/q_keisan_hiduke.html
お礼
大変お手数掛け有難うご゛いました。 今後ともご指導賜りますようよろしく御願いします。
お礼
私が求めていたものでした。 確認をさせていただきましたがばっちりです。 大変お手数掛け有難うご゛いました。 今後ともご指導賜りますようよろしく御願いします。