- ベストアンサー
エクセル97で年月日を入力したら各月日が自動入力
ABCDE MNOPQ 1 2002/11/1 2 11月 12月 3 12345~ 12345~ 4 金土日月火 計 累計 日月火水木 計 累計 5 3 1 5 2 3 14 14 上記のように、毎月の人数の集計表で横並びに毎月の集計 表があります A1のセルに2002/11/1と入力したら、毎月の表の最初の列 以降に、その月の日と曜日が横並びに表示され、その上に その月が自動的に入力出来る方法が分かりません 特に次の月からがどうすれば出来るか分かりません 出来れば関数で何とか作成したいのでご教授お願いします
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
それぞれの月の(最初はA1セル、2ヶ月目はM2セル)1日を基準としてA2,M2セルの月を表示しているので、3ヶ月目は式の中の、A1(これは、A2としても同じ結果が得られます。)をM2、2001/12/1を基準にすれば出来ます。 以降A1の部分を前月の1日のセル番号にすればOK 11月の部分のセルには11月ではなく、2002/11/1が入っています。 数式バーを見れば、その月の1日の日付になっています。 1月は =A1+DAY(DATE(YEAR(A1),MONTH(A1)+1,0)) を(ここではA1とA2は、同じものなのでどちらを使っても同じです。) =M2+DAY(DATE(YEAR(M2),MONTH(M2)+1,0)) と変更すれば1月が出ます。 なお、日付の部分に付いては、11月はA1(又はA2)を入れますが、12月はM2を基準としないと12月の日数になりません。 =IF(MONTH(A3)<>MONTH(A3+28),””,A3+28)」 のA3についても、M3に変更してください。これも、上と同じ理由です。 この説明は少しわかりにくいですよね。 各月をシート毎に分け1月を一枚のシートにする方法をとれば、各シートの下のタブを6ヶ月分選択して1ページ目のシートに式を入力すれば6枚同時に入りますがいかがですか。全て横にするのは大変でしょう。(シート6枚作り1番目のシートのタブをクリックして、シフトを押しながら6枚目のシートをクリックすると、6枚全てのシートが選択されます。)シートを串刺しにして同じフォームにすることが出来ます。 これだったら、常に各シートのA2が「月」表示のセルになるので同じ式になり、迷い難くなります。 これで、又がんばってください。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
2002/11月の例で説明します。 (1)A2に2001/11/1と入れます。(必ず/を使うこと)。 (2)B2に式=IF(A2+1>EOMONTH(TEXT(A2,"@"),0),"",A2+1) を入れます。C2からAE2まで式を複写します。 AE2はA2より31番目です。なぜ31番目まで複写するかわかります ね。月末の最大が31日だからです。 11月は30日ですが、上記に式で11月30日より大きいと 空白を入れますので11月31日に当たるところは空白です。 (3)A3に=A2と式を入れます。そしてAE3まで複写します。 (4)A3:AE3まで範囲指定し、書式-セル-ユーザー定義-aaa(aの小文字 3文字)を入れてOKをクリック。 これでだい3行目は曜日が出ます。 「横並び」とあったので、日を横並びにしましたが、 縦並びでも複写する方向を変えれば同じことです。
お礼
お礼が遅くなりました 回答有り難うございました 参考になりました 今後ともよろしくお願いします
- dejiji-
- ベストアンサー率38% (327/858)
以降の計算式を参考に入れてみてください。(エクセル2000ですが、変わった関数は使用していないので、これで大丈夫だとおもいます。) A1に2002/11/1を入れる。 A2にセル書式でユーザー設定で「mm”月”」 A3に「=A1」、セル書式でユーザー設定で「dd」 B4以降28日まで前のセルに「=A3+1」 A29セルに「=IF(MONTH(A3)<>MONTH(A3+28),””,A3+28)」 A30,31にはA29の式の28をそれぞれ29,30に変更する。 これで1日から月末までの日付が入る。(29日以降無い月は空欄) 毎月同じセル数(1~31までの欄ができます)の表が出来ます。 A4は日付のセルを参照(=A3)し、セル書式で「aaa」 次の月の初日は(M2セル) =A1+DAY(DATE(YEAR(A1),MONTH(A1)+1,0)) A1以降の関数はその月の日数の計算です。 合計・累計はお分かりですよね。
補足
すごいことが出来るものですね 2ヶ月までは出来たのですが、3ヶ月以降の表に下記の式を入れると同じになります。どうすれば出来るか申し訳有りませんがもう少しご教授お願いします >次の月の初日は(M2セル) >=A1+DAY(DATE(YEAR(A1),MONTH(A1)+1,0))
- oresama
- ベストアンサー率25% (45/179)
A2は、 =TEXT(A1,"m月") A3は、 =TEXT(A1,"d") B3に=A3+1 C3以降、これをコピペ A4は、 =TEXT(DATEVALUE(TEXT($A$1,"yyyy")&"/"&TEXT($A$1,"m")&"/"&A3),"aaa") B4以降はコレをコピペ M2に12月と表示させるには、 M1に、 =DATEVALUE(TEXT(A1+31,"yyyy")&"/"&TEXT(A1+31,"m")&"/"&1) M2に、 =TEXT(A1+31,"m月") M3に =TEXT(M1,"d") N3に =M3+1 O3以降にコピペ M4に、 =TEXT(DATEVALUE(TEXT($M$1,"yyyy")&"/"&TEXT($M$1,"m")&"/"&M3),"aaa") N4以降、これをコピペ これでいかがでしょう。
お礼
お礼が遅くなりました 回答有り難うございました 参考になりました 今後ともよろしくお願いします
- qwer021
- ベストアンサー率24% (70/281)
ABCDE MNOPQ xyzxx 1 2002/11/1 2002/11/2 2002/11/3 のようになれば 良いですか? MNOPQのところで 半角の状態で = カーソル左← +1と入力します。 B2に =A1+1 と入ったと思います。 後は B1をコピーして C1以降にコピーします。 日付表示をした行をセルの書式設定 日付で yyyy/mm/ddに変更してください。 勘違い等有りましたら m(_ _)mごめんなさい
お礼
お礼が遅くなりました 回答有り難うございました 参考になりました 今後ともよろしくお願いします
お礼
お手数をお掛けしました 出来ました。すごいですね尊敬します 大変助かりました有り難うございました 今後ともよろしくお願いします