質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Q&A

解決済

1回答

922閲覧

Googleスプレッドシートでの日付と曜日の自動入力

退会済みユーザー

退会済みユーザー

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

0グッド

1クリップ

投稿2020/05/05 08:34

以下の①~④を行う方法を教えていただきたいです。

Googleスプレッドシートで、
①あるセルに年月の数字を入力したら、
②他のセルから縦一列に日付が自動で入り、
③その横のセル縦一列に曜日が自動で入るようにしたいです。
④また、その入力した年月によって正しい日数だけ日付と曜日が表示されるようにしたいです。
(例えば2020年2月なら29日まで、2020年3月なら31日まで自動入力されるようにしたいです。)

また表示形式は以下のようにしたいです。
①のセルは西暦4桁"年"月数"月"(例:2020年5月)→年と月はそれぞれ別のセルでも同じセルでも構いません。
②のセルは"月数"月"日数"日"(例:5月1日)
③のセルは曜日の頭文字(例:木)

以上です。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

数式での処理の仕方です。
A1セルに年、B1セルに月、C1C31に②の1日から末日までの日付、D1D31に曜日を表示。

C1に日付を入れるには =DATE($A$1,$B$1,ROW())
ROW()関数で行番号をそのまま日付にしています。スタート行を変える際は -α で調整を

これをC1に入れて C31までコピペ。
ただ30日や29日で終わる月 だと、最後の方が次の月になっちゃうのので、

=IF(MONTH(DATE($A$1,$B$1,ROW()))=$B$1,DATE($A$1,$B$1,ROW()),)

これをC1に入れて、C2-C31にコピペ。
C列の日付の月を取得して、B1と違ったら空欄を返すようにしてるので、C列には月初から月末が入ります。
※スプレッドシートの表示形式で C列の日付は表示したい形式に直してください。

曜日の方は D1に =TEXT(C1,"ddd") として、同じようにD2~D31にコピペ。
こちらも同じくC列が空欄なら空欄を返すようにIFを使って

=IF(C1="",,TEXT(C1,"ddd"))

としてあげて、これをD1に入れて、D2-D31にコピペ。

これで要件が満たせますでしょうか?

これを ARRAYFORMULAでまとめた式にすると C1に以下を入れるだけで完成。

=ARRAYFORMULA(IF(MONTH(DATE($A$1,$B$1,ROW(C1:C31)))=$B$1,{DATE($A$1,$B$1,ROW(C1:C31)),TEXT(C1:C31,"ddd")},))

一足飛びよりも、数式をバラしてステップを踏んで理解した方がいいです。

投稿2020/05/05 12:45

sawa

総合スコア3002

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/05/08 13:49

sawa様 ご回答ありがとうございます。返信が遅くなり申し訳ございません。 教えていただいた方法で実践致しましたが、上手く表示させることができなかった部分がございます。 お手数ですがご確認いただきまして再度ご教示いただけないでしょうか? 1番目の方法「=DATE($A$1,$B$1,ROW())」 →表示できました。ありがとうございます。 2番目の方法「=IF(MONTH(DATE($A$1,$B$1,ROW()))=$B$1,DATE($A$1,$B$1,ROW()),)」 →B1の数字の表示形式を「@"月"」にしたらC1以降の表示が空白になりました。 B1の表示形式を数値のままにしたら、上手く表示できました。 B1の表示形式を「@"月"」のまま表示させることはできないのでしょうか? A1は「@"年"」のままでも大丈夫でした。 3番目の方法「=IF(C1="",,TEXT(C1,"ddd"))」 →表示できました。ありがとうございます。 4番目の方法「ARRAYFORMULA」を使った方法 →A1・B1の表示形式をそれぞれ「@"年"」「@"月"」としたらC1以降の表示が空白になりました。 A1・B1の表示形式が数値のままですとC1だけが「#REF!」と表示され、C2以降は空白でした。 A1とB1の数字に「年」「月」をつけて表示させたいのですが可能でしょうか? 以上です。 宜しくお願い致します。
sawa

2020/05/08 14:55

年の方は気にしなくてもよいですが、月の方のB1は MONTH(DATE($A$1,$B$1,ROW()))=$B$1 という式で見にいってるので、書式をカスタムしてるなら $B$1 のとこを数値化してあげる必要があります。 =$B$1のとこを =VALUE($B$1) としてあげるか、 =$B$1*1 としてあげれば、 数値になって動くと思います。
退会済みユーザー

退会済みユーザー

2020/05/09 02:41

迅速かつ丁寧なご対応ありがとうございます。 教えていただいた方法で表示させることができました。 また「ARRAYFORMULA」を使った方法でエラーが出た部分に関しましては 「ファイル」>「Googleスプレッドシートの設定」>「計算」の「反復計算」がオフになっていたので オンにすることで解決できました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問