在庫管理を効率化するには、スプレッドシートを活用する方法が便利です。
本記事では、Google Apps Script(以下、GAS)を使用して、スプレッドシートの2つ以上のシートを比較し、共通項目や非共通項目を効率的に処理する方法を解説します。
実際のシートに合わせて、コードを編集する箇所も記載しているのでぜひ試してみてください!
GAS剤師
比較対象を組み合わせることで様々なリストを簡単に作成できます
この記事で解決できること
2つ以上のシートを比較して、共通する(しない)データを簡単に特定
- 共通する項目を抽出
- 共通しない項目を抽出
事前準備
- Googleスプレッドシートを用意
- シート1(例:在庫リストA)
- シート2(例:在庫リストB)
比較したいデータは同じ列(例:商品コード列など)に配置してください。
- GASエディタを開く
- スプレッドシートを開き、
拡張機能 > Apps Script
を選択します。
- スプレッドシートを開き、
- スクリプトを貼り付ける
以下のコードをそのままコピーして、GASエディタに貼り付けてください。
GASコードと説明
共通する項目を抽出
function removeNonCommonItems() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheetA = ss.getSheetByName("在庫リストA");
const sheetB = ss.getSheetByName("在庫リストB");
const dataA = sheetA.getRange(2, 1, sheetA.getLastRow() - 1, sheetA.getLastColumn()).getValues();
const dataB = sheetB.getRange(2, 1, sheetB.getLastRow() - 1, sheetB.getLastColumn()).getValues();
const commonItems = dataA.filter(rowA => dataB.some(rowB => rowA[0] === rowB[0]));
sheetA.getRange(2, 1, sheetA.getLastRow() - 1, sheetA.getLastColumn()).clear();
sheetA.getRange(2, 1, commonItems.length, commonItems[0].length).setValues(commonItems);
}
共通しない項目を抽出
function removeCommonItems() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheetA = ss.getSheetByName("在庫リストA");
const sheetB = ss.getSheetByName("在庫リストB");
const dataA = sheetA.getRange(2, 1, sheetA.getLastRow() - 1, sheetA.getLastColumn()).getValues();
const dataB = sheetB.getRange(2, 1, sheetB.getLastRow() - 1, sheetB.getLastColumn()).getValues();
const nonCommonItems = dataA.filter(rowA => !dataB.some(rowB => rowA[0] === rowB[0]));
sheetA.getRange(2, 1, sheetA.getLastRow() - 1, sheetA.getLastColumn()).clear();
sheetA.getRange(2, 1, nonCommonItems.length, nonCommonItems[0].length).setValues(nonCommonItems);
}
コードを応用するための補足
- シート名の変更
sheetA
やsheetB
の行にあるgetSheetByName("シート名")
の"シート名"
を任意の名前に変更してください。- 例:
const sheetA = ss.getSheetByName("商品一覧");
- 例:
- 列の指定
比較する列を変更したい場合は、以下の部分を編集してください。rowA[0] === rowB[0]
[0]
は列番号を表します(0が1列目、1が2列目)。- 例:商品名(2列目)を比較する場合は
[1]
に変更します。
実行方法
- GASエディタで「実行」ボタンを押します。
- 初回実行時に「このアプリは確認されていません」という警告が表示されたら、「詳細」→「安全でないページに移動」を選択します。
- 実行したい関数(例:
copyAndHighlightCommonItems
)を選んで実行します。
まとめ
この記事では、GASを使ってスプレッドシート間で在庫データを比較し、共通項目や非共通項目を効率的に処理する方法を紹介しました。
応用するための編集ポイントも解説していますので、必要に応じてカスタマイズしてみてください。
在庫管理の手間を減らし、正確なデータ管理を実現しましょう!