- 作成日 : 2025年10月27日
スプレッドシートで複数ファイルをまとめるには?関数・アドオン・GASを使った効率的な統合方法
Googleスプレッドシートで複数のファイルやシートを一つにまとめる作業は、データ管理において頻繁に発生する課題です。本記事では、複数のスプレッドシートファイルを効率的に統合する方法として、IMPORTRANGE関数による基本的な連携から、便利なアドオンの活用、さらにGoogle Apps Script(GAS)を使った自動化まで、実務で即座に活用できる手法を段階的に解説します。
目次
スプレッドシートの関数で複数ファイルをまとめる方法は?
IMPORTRANGE関数を使用すると、異なるスプレッドシートファイルからデータを取り込んで一つのファイルにまとめることができます。 この関数は、Googleスプレッドシート(略称:スプシ)の標準機能として提供されており、追加のツールやプログラミング知識なしで複数ファイルの統合が可能です。
IMPORTRANGE関数の基本的な使い方
IMPORTRANGE関数の基本構文と設定手順:
=IMPORTRANGE(“スプレッドシートのURL”, “シート名!セル範囲”)
STEP 1: まとめ先となるスプレッドシートを開く
STEP 2: データを取り込みたいセルに以下の数式を入力
=IMPORTRANGE(“https://docs.google.com/spreadsheets/d/[ファイルID]/”, “Sheet1!A1:Z100”)
STEP 3: 初回実行時に表示される「アクセスを許可」をクリック
STEP 4: 取り込み元のデータが自動的に表示される
複数シートからデータを縦に結合する方法
複数のファイルを縦方向に結合するには、QUERY関数とIMPORTRANGEを組み合わせて使用します。 この方法により、異なるファイルの同じ形式のデータを一つの表として統合できます。
縦結合の実装例:
=QUERY({
IMPORTRANGE(“URL1”, “Sheet1!A2:D”);
IMPORTRANGE(“URL2”, “Sheet1!A2:D”);
IMPORTRANGE(“URL3”, “Sheet1!A2:D”)
}, “SELECT * WHERE Col1 IS NOT NULL”, 0)
- 波括弧 {} で複数のIMPORTRANGEを配列として結合
- セミコロン(;)で縦方向の結合を指定
- QUERY関数で空行を除外してクリーンなデータを作成
QUERY関数を活用した効率的なデータ統合
大量データの統合は、1つの式でまとめて取り込む方法に置き換えてください。
=QUERY({
IMPORTRANGE(“URL1″,”Sheet1!A2:D”);
IMPORTRANGE(“URL2″,”Sheet1!A2:D”);
IMPORTRANGE(“URL3″,”Sheet1!A2:D”)
},”select * where Col1 is not null”,0)
※ 初回は各ソースごとに [アクセスを許可] が必要です。
補足:スプレッドシートは1ファイル=1,000万セル上限です。統合で容量が逼迫する場合は、ファイル分割+必要時の再統合やアドオン/GASでの分散処理を検討してください。
アドオンを使って複数ファイルを簡単にまとめる方法は?
専用のアドオンを活用すると、プログラミング知識がなくても複雑な複数ファイルの統合作業を数クリックで実行できます。 Googleスプレッドシートのアドオンストアには、ファイル結合に特化した様々なツールが提供されており、用途に応じて選択可能です。
おすすめのファイル統合アドオンと特徴
おすすめアドオン(要点のみ・最新条件は公式で確認)
- Combine Sheets(Ablebits):
複数シートを列見出しで結合/30日間の完全機能トライアル。 - Merge Sheets(Ablebits):
複数表のマージ支援/試用可(詳細はマーケットプレイス参照)。 - Sheetgo:
スプレッドシート間の接続・自動ワークフロー/無料プランは月99転送、14日トライアルで機能拡張。 - Power Tools(Ablebits):
40以上のツールを統合した総合アドオン(条件は公式参照)。
Merge Sheetsアドオンの詳細な使用手順
- メイン表を選択。
- 参照(lookup)表を1つ以上選択。
- キー列(テーブル間で一致させる列)を指定。
- メイン表へ追加/更新する列を選択。
- 追加オプション(空セルは更新しない/非一致行を追加/更新セルを色付け/ステータス列を追加 など)を調整。
- Finish をクリックして実行。
※ 設定はシナリオとして保存でき、ワンクリックで再実行可能。定時自動実行は Process Sheets でシナリオをスケジュール。
GAS(Google Apps Script)で複数ファイルを自動的にまとめる方法は?
GASを使用すると、複数のスプレッドシートファイルの統合を完全に自動化し、定期実行や条件分岐などの高度な処理が実現できます。 プログラミングの基礎知識は必要ですが、一度設定すれば手動作業を大幅に削減できる強力なソリューションです。
基本的なGASスクリプトの作成と実行
複数ファイル統合の基本スクリプト:
javascript
function mergeMultipleSheets() {
// まとめ先のスプレッドシート
const masterSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// 統合するファイルのIDリスト
const fileIds = [
‘1234567890abcdefg’, // ファイル1のID
‘0987654321hijklmn’, // ファイル2のID
‘abcdefghij1234567’ // ファイル3のID];
// ヘッダー行を設定
const headers = [‘列1’, ‘列2’, ‘列3’, ‘列4’];
masterSheet.getRange(1, 1, 1, headers.length).setValues([headers]);
let currentRow = 2; // データ開始行
// 各ファイルからデータを取得して統合
fileIds.forEach(fileId => {
const sourceSheet = SpreadsheetApp.openById(fileId).getSheets()[0];
const sourceData = sourceSheet.getDataRange().getValues();
// ヘッダー行を除いたデータを取得
const dataWithoutHeader = sourceData.slice(1);
// まとめ先シートに書き込み
if (dataWithoutHeader.length > 0) {
masterSheet.getRange(currentRow, 1, dataWithoutHeader.length, dataWithoutHeader[0].length)
.setValues(dataWithoutHeader);
currentRow += dataWithoutHeader.length;}});
// 完了メッセージ
SpreadsheetApp.getUi().alert(‘統合が完了しました。総行数: ‘ + (currentRow – 1));}
フォルダ内の全ファイルを自動で統合する高度なスクリプト
Google Drive内の特定フォルダから自動取得:
javascript
function mergeAllFilesInFolder() {
// 対象フォルダのIDを指定
const folderId = ‘your-folder-id-here’;
const folder = DriveApp.getFolderById(folderId);
const files = folder.getFilesByType(MimeType.GOOGLE_SHEETS);
// まとめ先シートの準備
const masterSpreadsheet = SpreadsheetApp.create(‘統合データ_’ + new Date().toLocaleDateString());
const masterSheet = masterSpreadsheet.getActiveSheet();
masterSheet.setName(‘統合結果’);
let isFirstFile = true;
let currentRow = 1;
// フォルダ内の各ファイルを処理
while (files.hasNext()) {
const file = files.next();
const sourceSpreadsheet = SpreadsheetApp.open(file);
const sourceSheet = sourceSpreadsheet.getSheets()[0];
const data = sourceSheet.getDataRange().getValues();
// 最初のファイルはヘッダー付き、それ以降はデータのみ
const startRow = isFirstFile ? 0 : 1;
const dataToWrite = data.slice(startRow);
if (dataToWrite.length > 0) {
masterSheet.getRange(currentRow, 1, dataToWrite.length, dataToWrite[0].length)
.setValues(dataToWrite);
currentRow += dataToWrite.length;
// ファイル名を記録(オプション)
const fileNameColumn = dataToWrite[0].length + 1;
const fileNames = Array(dataToWrite.length).fill([file.getName()]);
masterSheet.getRange(currentRow – dataToWrite.length, fileNameColumn, dataToWrite.length, 1)
.setValues(fileNames);}
isFirstFile = false;}
// 結果の通知
console.log(‘統合完了: ‘ + masterSpreadsheet.getUrl());
return masterSpreadsheet.getUrl();}
トリガー設定による定期自動実行の実装
GASトリガーで完全自動化を実現:
STEP 1: スクリプトエディタでトリガー設定
javascript
function setupTrigger(){
const keep = new Set([‘dailyMergeFiles’]); // この原稿で管理するものだけ
ScriptApp.getProjectTriggers()
.filter(t => keep.has(t.getHandlerFunction()))
.forEach(t => ScriptApp.deleteTrigger(t));
ScriptApp.newTrigger(‘dailyMergeFiles’).timeBased().everyDays(1).atHour(9).create();}
function dailyMergeFiles() {
// エラーハンドリング付きの統合処理
try {
mergeAllFilesInFolder();
// 成功通知メール
GmailApp.sendEmail(
‘スプレッドシート統合完了’,
‘本日の統合処理が正常に完了しました。’);
} catch (error) {
// エラー通知
GmailApp.sendEmail(
‘スプレッドシート統合エラー’,
‘エラーが発生しました: ‘ + error.toString());}}
STEP 2: トリガーの種類と設定オプション
- 時間ベース: 毎時、毎日、毎週、毎月
- イベントベース: ファイル編集時、フォーム送信時
- カスタム間隔: 特定の分数ごと(1分〜4週間)
複数ファイル統合時のエラー対処法とトラブルシューティングは?
複数のスプレッドシートをまとめる際に発生する一般的なエラーは、適切な対処法を知ることで迅速に解決できます。 権限エラー、データ形式の不一致、パフォーマンス問題など、よくある課題と解決策を理解しておくことが重要です。
よくあるエラーと解決方法一覧
- 代表メッセージ:”Reference does not exist” など
- 主な原因:
- 参照先シート/範囲の削除・改名・綴り誤り
- IMPORTRANGE の初回接続未許可/参照元への閲覧権限なし
- 配列結果の展開先に値や結合セルがある
- 解決方法:
- 参照文字列・シート名・範囲を再確認
- (IMPORTRANGE)[アクセスを許可]+参照元の閲覧権限付与
- 出力先を空にし結合を解除
- 性質:状態表示(恒常化すると問題)
- 主な原因:
- 初回接続未許可
- 参照先スプレッドシートの負荷やネットワーク遅延
- 範囲が大きすぎる/多重ネスト
- 権限不足
- 解決方法:
- IMPORTRANGE を短い範囲で一度接続→[アクセスを許可]
- QUERY で必要列だけに絞る・範囲を縮小
- 計算を分割/段階化
- 参照元の閲覧権限を付与
- 主な原因:
- キーの未一致
- VLOOKUP が近似一致(第4引数省略/TRUE)
- 数値↔文字列の型不一致
- 前後スペース・不可視文字
- 解決方法:
- データ型を統一(VALUE/TEXT)
- VLOOKUP は 第4引数 FALSE に
- TRIM/CLEAN/SUBSTITUTE で正規化
- 必要に応じて INDEX+MATCH に置換
- 主な原因:括弧/引用符の不一致、ロケールに合わない区切り子(, と ;)、全角記号混入
- 解決:括弧と引用符を点検、区切り子をロケールに合わせる、全角記号を半角へ
- 主な原因:単一実行での処理量過大/逐次 API 呼び出し過多
- 解決:
- 範囲で一括取得/書込(getValues/setValues)
- 書式変更や set 系はまとめて実行
- 大規模は時間主導トリガーで分割実行・続き実行
- 巨大ファイルは年度/部署などで分割し、必要時に再統合
- 主な原因:配列数式の出力先にデータ/結合セル、または出力範囲がシート端を越える
- 解決:出力先を空にする/結合を解除/開始セルを見直す
複数スプレッドシートの効率的な統合で業務改革を実現しよう
Googleスプレッドシートで複数ファイルをまとめる方法は、IMPORTRANGE関数による基本的な連携から、アドオンを使った簡易自動化、そしてGASによる完全自動化まで、様々な選択肢があります。小規模は関数、中規模はアドオン、大規模はGASという方針でよいですが、1ファイル=最大1,000万セルの上限や IMPORTRANGEの権限要件、揮発関数(例:INDIRECT)の多用は重くなるといった制約も踏まえて方式を選定してください。
各手法の特徴を理解し、データ量や更新頻度、チームの技術レベルに応じて最適な方法を選択することで、複数のスプレッドシートファイルの管理を大幅に効率化できます。まずは簡単な関数から始めて、必要に応じて段階的に自動化を進めていくことをお勧めします。
この記事をお読みの方におすすめのガイド5選【部署別紹介】
最後に、この記事をお読みの方によく活用いただいている人気の資料・ガイドを紹介します。すべて無料ですので、ぜひお気軽にご活用ください。
経理担当者向け
①Excel関数集 32選まとめブック
経理担当者の方をはじめ、ビジネスパーソンが知っておきたい便利なExcel関数集を初級~上級までギュッと網羅。新人社員の研修用などにもお使いいただけます。Google スプレッドシートならではの関数もご紹介しています。
②勘定科目・仕訳辞典(税理士監修)
勘定科目・仕訳に関する基本知識、および各勘定科目の仕訳例を具体的かつ網羅的にまとめた、50ページを超えるガイドを無料で提供しております。お手元における保存版としてでだけでなく、従業員への印刷・配布用としてもぜひご活用ください。
人事労務担当者向け
①入社・退職・異動の手続きガイドブック
書類の回収・作成・提出など手間のかかる入社・退職・異動(昇給・昇格、転勤)の手続き。
最新の制度をもとに、よくある質問やチェックポイントを交えながら、各手続きに必要な情報をまとめた人気のガイドですす。
②社会保険・労働保険の手続きガイド
企業において社会保険および労働保険の加入・喪失手続きは必ず発生し、手続きを誤れば保険事故が発生した際に従業員が不利益を被る可能性があります。
各保険の基本的な手続き方法を入社・退職・異動のシーン別にギュッとまとめた分かりやすいガイドです。
総務・法務担当者向け
契約書ひな形まとめ30選
業務委託契約書や工事請負契約書…など各種契約書や、誓約書、念書・覚書、承諾書・通知書…など、使用頻度の高い30個のテンプレートをまとめた、無料で使えるひな形パックです。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
COLUMN関数の使い方や利用シーンをわかりやすく解説
COLUMN関数は、スプレッドシートやExcelなどの表計算ソフトで、セルの列番号を取得するための非常に便利な機能です。特に、大規模なデータセットを扱う際、特定の列の位置を動的に参照することで、数式やデータ処理を効率化できます。このリード文…
詳しくみるスプレッドシートにファイルを添付するには?メール送信とPDFのセル埋め込み方法
Googleスプレッドシート(Google Sheets)では、ファイルをメールで共有したり、セル内に直接貼り付けたりと、用途に応じた複数の添付方法が利用できます。 本記事では、スプレッドシートをメールに添付して送信する手順と、PDFなどの…
詳しくみるExcelのDAY関数の使い方!日付から「日」だけを取り出す方法と活用術
Excelで日付データを扱っているとき、「日付の中から『日』だけを取り出したい」と感じたことはありませんか?例えば、誕生日の日付データから「生まれた日」だけを抽出したい場合や、特定の日付のデータを基に集計を行いたい場合などに便利です。 この…
詳しくみるLEFTB関数の使い方:バイト単位で文字列を抽出する方法
LEFTB関数は、文字列の左端から指定したバイト数分の文字を抽出する関数です。通常のLEFT関数が文字数単位で抽出するのに対し、LEFTB関数はバイト単位で処理を行うため、全角文字と半角文字が混在するデータを扱う際に特に有効です。 例えば、…
詳しくみるCORREL関数の使い方とは?エクセルで相関係数を求めよう
データ分析において、異なる変数間の関係性を把握することは非常に重要です。エクセルには、そうした相関関係を簡単に求めるための「CORREL関数」が用意されています。この関数を使うことで、2つのデータセット間の相関係数を迅速に計算することができ…
詳しくみるスプレッドシートのツールバーが表示されない?原因と解決方法を徹底解説
Googleスプレッドシート(Google Sheets)を使用中に、ツールバーやメニューバーが突然消えて困った経験はありませんか?本記事では、スプレッドシートでツールバーが表示されない主な原因と、すぐに実践できる対処法を詳しく解説します。…
詳しくみる



