2
2

欲しいデータだけを抽出してみたかったので、ChatGPTに聞いてみた

Last updated at Posted at 2024-08-27

1.毎週、お店に連絡している連絡事項の時短をしたい

こんにちは。食品の衛生管理を担当しているt0mihiと申します。
2回目の投稿です。
このお仕事についてから、半年とまだまだ右も左もわからない状況で、いろいろ模索しながらお仕事をしている毎日です。

毎週のルーチンワークとして、お店で発生した賞味期限切れの内容について、各店舗に発信しておりますが、毎回、調べて手入力で記入して、メールで送信しております。

このような感じのメールで配信です↓

キャプチャ12.PNG

賞味期限の項目を探し、手入力は時間がかかるので、つい最近勉強したGoogleスプレッドシートを活用して、賞味期限のデータを抽出できないか?
ChatGPTに聞いてみました。

2.ChatGPTに聞いて見た

キャプチャ6.PNG

function extractExpiryDates() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = ss.getSheetByName('元のシート名'); // 元のシート名に置き換えてください
  var targetSheet = ss.getSheetByName('Sheet1');
  
  // 元のシートのデータを取得
  var data = sourceSheet.getDataRange().getValues();
  
  // 「賞味期限」や「消費期限」を含む行だけをフィルタリング
  var filteredData = data.filter(function(row) {
    return row[6] && (row[6].toString().includes('賞味期限') || row[6].toString().includes('消費期限'));
  });
  
  // ターゲットシートをクリア
  targetSheet.clear();
  
  // フィルタリングされたデータを書き込む
  if (filteredData.length > 0) {
    targetSheet.getRange(1, 1, filteredData.length, filteredData[0].length).setValues(filteredData);
  }
}

キャプチャ7.PNG

なるほど
ChatGPTからの返答をもとに、作成してみました。

3.使用したツール

・Excel
・Googleスプレッドシート
・GAS
・ChatGPT

4.作成した手順

1.Excel

・元データです。大分類のところから、賞味期限の項目だけ抽出したいと思っております。
image.png

2.Googleスプレッドシート

・Excelの情報をGoogleスプレッドシートに貼り付けしました。
キャプチャ3.PNG

3.GAS+ChatGPT

Googleスプレッドシートの拡張機能から、Apps ScriptにChatGPTから聞いたコードを貼り付けしました。

function extractExpiryDates() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = ss.getSheetByName('元のシート名'); // 元のシート名に置き換えてください
  var targetSheet = ss.getSheetByName('Sheet1');
  
  // 元のシートのデータを取得
  var data = sourceSheet.getDataRange().getValues();
  
  // 「賞味期限」や「消費期限」を含む行だけをフィルタリング
  var filteredData = data.filter(function(row) {
    return row[6] && (row[6].toString().includes('賞味期限') || row[6].toString().includes('消費期限'));
  });
  
  // ターゲットシートをクリア
  targetSheet.clear();
  
  // フィルタリングされたデータを書き込む
  if (filteredData.length > 0) {
    targetSheet.getRange(1, 1, filteredData.length, filteredData[0].length).setValues(filteredData);
  }
}

元のシート名を変更 → 保存 → 実行

え???何も出ない!!

キャプチャ5.PNG

確認すると、
Excelシートは賞味(消費)期限。

キャプチャ6.PNG

取得したコードは、

キャプチャ.7PNG.PNG

「賞味期限」、「消費期限」となっていたため、不一致。
もう一度、ChatGPTへ「賞味」というキーワードに変更し、聞き直してみました。

キャプチャ10.PNG

function extractExpiryDates() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = ss.getSheetByName('元のシート名'); // 元のシート名に置き換えてください
  var targetSheet = ss.getSheetByName('Sheet1');
  
  // 元のシートのデータを取得
  var data = sourceSheet.getDataRange().getValues();
  
  // 「賞味」と記入された行だけをフィルタリング
  var filteredData = data.filter(function(row) {
    return row[6] && row[6].toString().includes('賞味');
  });
  
  // ターゲットシートをクリア
  targetSheet.clear();
  
  // フィルタリングされたデータを書き込む
  if (filteredData.length > 0) {
    targetSheet.getRange(1, 1, filteredData.length, filteredData[0].length).setValues(filteredData);
  }
}

キャプチャ11.PNG

再度、ChatGPTから聞いたコードをApps Scriptに貼り付けしました。

キャプチャ9.PNG

シートが作成できました。
次に、必要のない列を削除するコードをChatGPTに聞いて入力。
キャプチャ12.PNG

function deleteColumnsInSheet1() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Sheet1');
  
  if (sheet) {
    // 列を逆順で削除する
    sheet.deleteColumn(11); // K列(11番目)
    sheet.deleteColumn(9);  // I列(9番目)
    sheet.deleteColumn(8);  // H列(8番目)
    sheet.deleteColumn(7);  // G列(7番目)
    sheet.deleteColumn(5);  // E列(5番目)
    sheet.deleteColumn(3);  // C列(3番目)
    
    Logger.log('C列、E列、G列、H列、I列、K列の削除が完了しました。');
  } else {
    Logger.log('Sheet1が見つかりません。');
  }
}

キャプチャ15.PNG

必要のない列を削除できました。

完成です!!

キャプチャ11.PNG
※店名部分は、黒塗りしております。

データを抽出できるようになって、少しの時間ですが、10分短縮することができました。
短縮した時間を別の賞味期限削減の資料作成に充てております。

5.今後の課題

今の職場に来て半年なので、これから、業務改善への気づきが出てくると思います。

ChatGPTとGoogleスプレッドシートを活用し、さらなる業務改善を進めて、作業時間の効率化をはかり、空いた時間で別の作業の効率化をはかる、そういうサイクルができるようにしたいと思います。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2