エクセルのカレンダーに予定を複数入れる|1日に何件も入れる作り方

エクセルのカレンダーで1日に複数の予定を扱うなら、予定はカレンダーの升目に直接書かず、別のシートに「1行に1件」の一覧として入力し、升目には式で一覧から呼び出して表示するのが、崩れにくく後から集計もできる作り方です。 升目に直接書き足す方法は、件数が2件を超えたあたりから、行の高さ、並び順、検索、集計のすべてで手間が増えます。 この記事では、一覧シートの列の決め方、升目に複数の予定を時刻順に並べる式、重なりを見つける式、そしてGoogleカレンダーへ移すときのCSVの形までを、MicrosoftとGoogleの公式ヘルプで確かめた仕様に沿って順に説明します。

升目に直接書く方法が、件数とともに崩れる理由

月のカレンダーの升目に予定を書き足していく方法は、最初の1か月は問題なく回ります。 崩れ始めるのは、1日に3件、4件と予定が重なる日が出てきたときです。

  • 升目の高さが足りなくなり、行の高さを広げると、ほかの週まで間延びして1画面に収まらなくなる
  • セル内で改行して書き足すと、時刻の順に並べ替えられず、あとから入れた予定が下に溜まる
  • 「打合せ」を含む予定が月に何件あったか、という集計が式で取れない
  • 1件の予定を別の日に動かすとき、セルの中の文字の一部を切り取って貼り直す操作になる
  • 複数人で編集すると、同じ升目を同時に書き換えて、片方の書き込みが消える

上位の解説記事でも、エクセルでのスケジュール管理の限界として、共有のしにくさや同時編集の問題が挙げられています。 ただ、その多くは「グループウェアに移る」という結論で終わっています。 エクセルを使い続けたい事情があるなら、先に変えるべきは道具ではなく、データの持ち方です。 升目は「見るための画面」、予定のデータは「別の一覧」と役割を分けると、上の5つの問題のうち4つは式で解決できます。

一覧シートの作り方:1行1件と、列の決め方

まず、カレンダーとは別のシートを作り、名前を「予定」にします。 1行目に見出しを入れ、2行目から下に1件ずつ予定を入力します。 列は、後でGoogleカレンダーに移すことも考えて、次の6つから始めるのが扱いやすい形です。

列 見出し 入力の例
A 日付 2026/10/20
B 開始 10:00
C 終了 11:00
D 件名 定例会議
E 担当 佐藤
F 場所 会議室A

ポイントは3つあります。

  • 日付と時刻は文字ではなく、エクセルの日付と時刻の値として入れる。「10月20日」のように文字で入れると、式で比べられない
  • 開始と終了を別の列にする。「10:00〜11:00」と1つのセルに書くと、重なりの判定ができない
  • 入力が済んだら、表の中を選んで「挿入」タブの「テーブル」でテーブルに変え、名前を「予定」にする

テーブルにしておくと、下に行を書き足したときに式の範囲が自動で広がり、「予定[日付]」のように列の名前で式を書けます。 MicrosoftのFILTER関数の説明でも、データがテーブルの中にあれば構造化参照を使うことで、データの追加や削除に合わせて結果の範囲が自動で変わると説明されています。 複数人で入力する場合は、担当の列に入力規則のリストを設定し、名前の表記ゆれを防いでおくと、後で担当ごとに絞り込むときに困りません。

升目に複数の予定を時刻順に並べる式

一覧ができたら、カレンダーのシートの升目に式を入れます。 升目の上の段に日付があり、たとえばB3に2026/10/20という日付の値が入っているとします。 升目の日付も手で打たず、式で作っておくと月を替えるのが楽になります。 たとえばA1に月の初日の2026/10/1を入れ、カレンダーの左上の日付のセルに=A1-WEEKDAY(A1)+1と入れると、その月の1日を含む週の日曜日の日付が出ます。 右隣のセルは左のセルに1を足す式、次の週の段は上の段に7を足す式にしておけば、A1を書き換えるだけで6週間の日付がそろって入れ替わります。 その月以外の日付の文字は、条件付き書式で薄い色にしておくと見分けやすくなります。

日付の入ったB3の下のセルB4に、次の式を入れます。

=TEXTJOIN(CHAR(10),TRUE,SORT(FILTER(TEXT(予定[開始],"hh:mm")&" "&予定[件名],予定[日付]=B3,"")))

式の中身を内側から読むと、次の順番で動いています。

  1. TEXT関数で開始時刻を「09:00」のような2桁の文字にし、件名とつなげる
  2. FILTER関数で、日付の列がB3と同じ行だけを取り出す
  3. SORT関数で、取り出した行を文字の順に並べる。時刻を2桁で始めているので、文字の順がそのまま時刻の順になる
  4. TEXTJOIN関数で、CHAR(10)、つまりセル内の改行をはさんで1つのセルにまとめる

B4のセルは、「ホーム」タブの「折り返して全体を表示する」をオンにしておきます。 これで、一覧に予定を書き足すだけで、升目には時刻の順に並んだ複数の予定が自動で表示されます。 予定を別の日に動かすときは、一覧の日付を1か所書き換えるだけです。

FILTER関数は、条件に合う行が1件も無いと#CALC!エラーを返す仕様です。 式の中の最後の「""」は、予定の無い日に空欄を返すための指定で、これを省くと予定の無い日の升目がエラーで埋まります。 また、TEXTJOIN関数の説明によると、結果の文字列がセルの上限の32,767文字を超えると#VALUE!エラーになります。 1日の予定でこの上限に届くことはまずありませんが、件名の代わりにメモの列まで連結する使い方をすると、表示しきれない長さになるため、升目に出すのは時刻と件名だけにとどめます。

FILTER関数やSORT関数が使えない版のエクセルでは、式を入れると#NAME?と表示されます。 その場合は、一覧シートを日付と開始時刻で並べ替えたうえで、オートフィルターで日付を絞り込んで見る使い方に切り替えます。

重なりと件数を、式で見つける

1行1件の一覧にしておく一番の利点は、升目に書いていたときには見えなかった重なりを式で見つけられることです。 一覧のテーブルの右に「重なり」という列を足し、2行目に次の式を入れます。

=COUNTIFS([日付],[@日付],[開始],"<"&[@終了],[終了],">"&[@開始])-1

この式は、同じ日付の予定のうち、「自分の終了より前に始まり、自分の開始より後に終わる」予定の数を数えています。 自分自身もこの条件に当てはまるため、最後に1を引いています。 結果が1以上の行は、ほかの予定と時間が重なっています。 「ホーム」タブの「条件付き書式」で、この列が1以上の行を赤くすると、入力した瞬間に重なりが分かります。

複数人で1つの一覧を使う場合は、条件に担当を加えます。 =COUNTIFS([日付],[@日付],[担当],[@担当],[開始],"<"&[@終了],[終了],">"&[@開始])-1 こうすると、同じ人の予定どうしの重なりだけが数えられ、別の人が同じ時間に会議に出ていることは重なりとして扱われません。

件数の集計も、同じCOUNTIFS関数で取れます。 たとえば別のセルに担当者の名前を入れ、=COUNTIFS(予定[担当],H2,予定[日付],">="&DATE(2026,10,1),予定[日付],"<"&DATE(2026,11,1))とすれば、その人の10月の予定の件数が出ます。 升目に書き込む方法では取れなかった数字が、一覧に変えるだけで取れるようになります。

Googleカレンダーへ移すときのCSVの形

一覧の形で予定を持っていると、Googleカレンダーへの移し替えもCSVファイル1つで済みます。 GoogleカレンダーのヘルプGoogle カレンダーに予定を読み込むには、CSVファイルの見出しの決まりが書かれています。 2026年10月18日に確かめた内容の要点は次のとおりです。

  • 見出しは英語で書く必要がある
  • 必須の見出しは「Subject」(予定の名前)と「Start Date」(開始日)の2つだけ
  • ほかに使える見出しは「Start Time」「End Date」「End Time」「All Day Event」「Description」「Location」「Private」
  • 終日かどうか、限定公開かどうかは「True」か「False」で入れる
  • 予定の内容にカンマを含めるときは、その文字を引用符で囲む

新しいスプレッドシートの最初の行には、「Subject」や「Start Date」などのヘッダーを含めます。ファイルを Google カレンダーに読み込むには、ヘッダーを英語で表記する必要があります。 出典: support.google.com

この記事の一覧の列に当てはめると、件名がSubject、日付がStart DateとEnd Date、開始がStart Time、終了がEnd Time、場所がLocationです。 担当の列は対応する見出しが無いため、Descriptionに入れるか、書き出す前に削ります。 書き出し用のシートを1枚作り、1行目に英語の見出しを並べて、各列を一覧から参照する式にしておくと、毎回の書き出しが「ファイル」メニューからCSV形式で保存するだけの作業になります。

読み込みは、Googleカレンダーの右上の設定アイコンから「設定」を開き、左側の「インポート / エクスポート」で「パソコンからファイルを選択」を押し、追加先のカレンダーを選んで「インポート」を押します。 注意点として、同じヘルプには、CSVから定期的な予定を読み込むと1回限りの予定の連続として表示されることがある、予定のゲストと会議のデータは読み込まれない、とも書かれています。 毎週の定例会議のような繰り返しの予定は、CSVで移さず、Googleカレンダーの側で繰り返しの予定として作り直すほうが後の変更が楽です。

なお、Macの「カレンダー」アプリの公式ガイドでは、読み込める形式は.icsファイルとカレンダーアーカイブの.icbuファイルとされており、CSVは直接は読み込めません。 Macの「カレンダー」で見たい場合は、いったんGoogleカレンダーに読み込み、そのGoogleのアカウントをMacの「カレンダー」に追加する流れになります。

表計算に残す仕事と、カレンダーに渡す仕事

ここまでの作り方で、エクセルのカレンダーでも1日に複数の予定を崩れずに扱えるようになります。 それでも、エクセルの上では解決できない仕事が残ります。 予定の直前の通知、スマートフォンでの確認、会議のURLの発行、移動にかかる時間の確保です。 これらはファイルを開いていないと動かないエクセルではなく、カレンダーの側に任せる仕事です。

役割を分けるなら、集計や担当ごとの割り振りのように表計算が得意な仕事はエクセルの一覧に残し、確定した予定はカレンダーに移して、通知と移動の管理はカレンダーに任せる形が無理がありません。 移す手間をさらに減らしたい場合は、メールやチャットの文面を貼り付けると日時、場所、出席者、会議のリンクを読み取って予定の下書きにするMac用のカレンダーアプリを使う方法もあります。 一文で予定を作る書き方の例は予定の入れ方にまとまっており、書類やWebページから予定をまとめて取り込む機能を含めた料金の区分は購入のページで確かめられます。

エクセルの升目に予定を書き足して行の高さと格闘しているなら、まず一覧シートを1枚作り、今月の予定だけを1行1件で入れ直してみるところから始めると、どちらの道を選ぶにしても次の作業が軽くなります。

よくある質問

エクセルのカレンダーで、1つのセルに複数の予定を入れるにはどうすればよいですか?

セルの中で改行して書き足す方法もありますが、件数が増えると並べ替えや集計ができなくなります。予定は別のシートに1行1件で入力し、升目にはTEXTJOIN関数とFILTER関数で、その日の予定を改行でつないで表示する方法が崩れにくい作り方です。セルは「折り返して全体を表示する」をオンにします。

予定の無い日の升目に#CALC!と表示されるのはなぜですか?

FILTER関数は、条件に合う行が1件も無いと#CALC!エラーを返す仕様です。FILTER関数の3番目の引数に空の文字列を指定すると、予定の無い日は空欄になります。この記事の式の最後にある空の引用符が、その指定にあたります。

エクセルで予定の時間の重なりを見つけられますか?

見つけられます。予定を1行1件の一覧にしたうえで、COUNTIFS関数で同じ日付のうち「自分の終了より前に始まり、自分の開始より後に終わる」予定を数え、自分の分の1を引きます。結果が1以上なら重なりがあります。担当の条件を加えると、同じ人の予定だけで判定できます。

エクセルの予定をGoogleカレンダーに移すには、どんなCSVが必要ですか?

1行目に英語の見出しを入れたCSVが必要です。必須は「Subject」と「Start Date」の2つで、ほかに「Start Time」「End Date」「End Time」「Location」「Description」などを使えます。読み込みはGoogleカレンダーの設定の「インポート / エクスポート」から行います。繰り返しの予定は1回ずつの予定として入ることがあります。

記事一覧へ戻る