1.毎週、お店に連絡している連絡事項の時短をしたい
こんにちは。食品の衛生管理を担当しているt0mihiと申します。
2回目の投稿です。
このお仕事についてから、半年とまだまだ右も左もわからない状況で、いろいろ模索しながらお仕事をしている毎日です。
毎週のルーチンワークとして、お店で発生した賞味期限切れの内容について、各店舗に発信しておりますが、毎回、調べて手入力で記入して、メールで送信しております。
このような感じのメールで配信です↓
賞味期限の項目を探し、手入力は時間がかかるので、つい最近勉強したGoogleスプレッドシートを活用して、賞味期限のデータを抽出できないか?
ChatGPTに聞いてみました。
2.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);
}
}
なるほど
ChatGPTからの返答をもとに、作成してみました。
3.使用したツール
・Excel
・Googleスプレッドシート
・GAS
・ChatGPT
4.作成した手順
1.Excel
・元データです。大分類のところから、賞味期限の項目だけ抽出したいと思っております。
2.Googleスプレッドシート
・Excelの情報をGoogleスプレッドシートに貼り付けしました。
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);
}
}
元のシート名を変更 → 保存 → 実行
え???何も出ない!!
確認すると、
Excelシートは賞味(消費)期限。
取得したコードは、
「賞味期限」、「消費期限」となっていたため、不一致。
もう一度、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('賞味');
});
// ターゲットシートをクリア
targetSheet.clear();
// フィルタリングされたデータを書き込む
if (filteredData.length > 0) {
targetSheet.getRange(1, 1, filteredData.length, filteredData[0].length).setValues(filteredData);
}
}
再度、ChatGPTから聞いたコードをApps Scriptに貼り付けしました。
シートが作成できました。
次に、必要のない列を削除するコードをChatGPTに聞いて入力。
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が見つかりません。');
}
}
必要のない列を削除できました。
完成です!!
データを抽出できるようになって、少しの時間ですが、10分短縮することができました。
短縮した時間を別の賞味期限削減の資料作成に充てております。
5.今後の課題
今の職場に来て半年なので、これから、業務改善への気づきが出てくると思います。
ChatGPTとGoogleスプレッドシートを活用し、さらなる業務改善を進めて、作業時間の効率化をはかり、空いた時間で別の作業の効率化をはかる、そういうサイクルができるようにしたいと思います。