本題
二種類の行事予定表があったとして、両者を結合して、一つのカレンダーを作りたいです。たとえば社内行事予定表に国民の祝日を合成したい。
実装
embed記法?を使えば二つの範囲を結合できます。
={events!a1:b4; happy_days!a1:b18}
複数の範囲をセミコロンで区切ってブレースで囲むんですね。
しかし、行単位で範囲を指定すると、データの増減に対応できません。かといって、次のように列全体を指定してしまうと空白行まで含んでまともに合成できません。
={events!a:b; happy_days!a:b}
そこで、列Aを必須項目として空行を除外します。この程度の条件であればフィルタで可能ですね。
={FILTER(events!A1:B,not( ISBLANK(events!A1:A)); FILTER(happy_days!A1:B,not( ISBLANK(happy_days!A1:A))}
これで両者が合成されます。
おまけ
ほかのファイルのシートからデータを引っ張ってくるには、IMPORTRANGEを使います。滅多に編集しないマスターデータなどはインポートした方が使いやすいかもしれませんね。
IMPORTRANGE("https://docs.google.com/spreadsheets/d/abcd123abcd123", "sheet1!A1:C10")
ただし共有化したファイルに限ります。
結論
GoogleSpreadSheet は強力なので無理目の要望も実現できてしまいますが、計算負荷はそれなりに高そうです。こんな無茶するより、はじめから同じシートに蓄積した方が良いですよ。よその部署が管理するシートだから編集権限がないといった政治的な敗北を喫さない限りは。