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

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

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

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

![キャプチャ12.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840320/373a3d59-401b-1cb8-7871-59627543f803.png)

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

## 2.ChatGPTに聞いて見た

![キャプチャ6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840320/5df1ccd1-76bf-ca4d-c5cc-715dd8caaf81.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840320/9e3ab3a5-66e9-08b3-d086-c4b39178b172.png)





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

# 3.使用したツール
**・Excel**
**・Googleスプレッドシート**
**・GAS**
**・ChatGPT**

# 4.作成した手順
#### 1.Excel
・元データです。大分類のところから、賞味期限の項目だけ抽出したいと思っております。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840320/e79a5bab-5346-73af-00e6-91c7b790f8b2.png)
#### 2.Googleスプレッドシート
・Excelの情報をGoogleスプレッドシートに貼り付けしました。
![キャプチャ3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840320/5412e681-694b-83c3-da9a-9ec11503d6f2.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840320/3a537904-9044-288c-3cc4-496ed94968c6.png)

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

![キャプチャ6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840320/b6078294-113b-c3d0-1639-bc1616c5e24a.png)

取得したコードは、

![キャプチャ.7PNG.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840320/5f602b1d-2cdf-67e1-0b64-ad5a8d62fab2.png)

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

![キャプチャ10.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840320/a24b4c4b-207a-a3d9-d66d-4beea0631a1e.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840320/8c3b348d-bb53-833c-b7a7-c5a8d620360b.png)

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

![キャプチャ9.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840320/317d50af-3f27-6f35-b413-0d3aa6999029.png)

シートが作成できました。
次に、必要のない列を削除するコードをChatGPTに聞いて入力。
![キャプチャ12.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840320/4de66fa6-1306-f9b0-ed89-f6e50dd71aab.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840320/9840906d-b31e-1402-fa63-2712a3459f5c.png)



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

**完成です！！**

![キャプチャ11.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840320/9a0d2b92-6f3b-afea-6007-91ab1a7d9805.png)
※店名部分は、黒塗りしております。


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

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

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