GoogleHomeに領収書の内容を話すと、自動で表形式のデータに入力してくれる仕組みが完成したので、解説します。
この記事は旧ブログの記事をリライトしたものです。
どんな仕組み?
「OK Google、領収書、○○商店で2000円、材料費」とGoogleHomeに話すと、Googleスプレッドシートに日付と、○○商店、2000、材料費と入力される。
あらかじめ必要なもの
- Google Home(miniでもOk)またはAndroidスマホ。
|
- Googleアカウント
- IFTTTのアカウント
あるといいもの
- 書籍「詳解!Google Apps Script完全入門」
- Excel関数の知識
作り方
まず、普通にGoogleHomeを使えるようにしておいてください。スマホの場合は何もしなくていいのですが、「OKグーグル、今日の天気は?」と聞いて今日の天気を音声で知らせてくれるようにしてください。
IFTTTの設定
IFTTTのサイト(https://ifttt.com/)で「MyApplets」を選択します。
「New Applet」をクリックします。
「+this」をクリックします。
検索窓にGoogleと入力すると、Google Assistantが表示されるのでクリックします。
Say a phrase with a text ingredientをクリックします。
What do you want to say?に「領収書 $」と入力
What do you want the Assistant to say in response?に「領収書データを入力しました」と入力
Languageを「Japanese」に設定
Create Triggerをクリック
+thatをクリック
検索窓に「Sheet」と入力するとGoogleSheetが表示されるのでクリック
Add row to spreadsheetをクリック
Spreadsheet nameに「領収書」
Formatted rowに「||||||{{TextField}}」
Drive folder pathに「Google Home/」
Create Actionをクリック
Finishをクリック
この時点で、「OK Google、領収書、○○商店で2000円、材料費」を話すと、GoogleシートのGoogle Homeフォルダの中の領収書シートのC列に1件追加されます。
1件入力しておきましょう。
ここまでで、IFTTTは終わりです。
Googleスプレッドシートに計算式を仕込む
Google Homeフォルダの中の領収書シートのD1に「=IFERROR(LEFT(C1, FIND(“で“,C1)-1),“”)」と入力。
E1に「=IFERROR(LEFT(C1, FIND(“に“,C1)-1),“”)」と入力。
F1に「=D1&E1」と入力。
G1に「=MID(SUBSTITUTE(C1,F1,“”),2,255)」と入力。
H1に「=IFERROR(VALUE(LEFT(G1, FIND(“円“,G1)-1)),“”)」と入力。
I1に「=IFERROR(mid(G1, FIND(“円“,G1)+1,255),“”)」と入力。
J1に「=SUBSTITUTE(F1,” “,“”)」と入力。
K1に「=H1」と入力。
L1に「=SUBSTITUTE(I1,” “,“”)」と入力。
Googleでスクリプトの作成
Googleスプレッドシートでツールのスクリプトエディタを選択
次のコードを入力
var spreadsheet = SpreadsheetApp.openById(‘1P63nyuV-nTSnpmmUrDlX2JM3zIlCEwl9KVrux-fcGnU’);
var sheet = spreadsheet.getActiveSheet();
var date = new Date();
function addDate() {
var lastRow = sheet.getLastRow();
sheet.getRange(lastRow, 1).setValue(new Date());
sheet.getRange(1, 4, 1, 9).copyTo(sheet.getRange(lastRow, 4, 1,9))
}
黒塗りの部分は、領収書シートのURLの
「https://docs.google.com/spreadsheets/d/<これ>/」
スクリプトを「領収書日付」で保存
トリガーを設定
新しいトリガーを追加で次の設定して保存
承認が必要な場合は、次の手順を実行
- 許可を確認
- 自分のアカウントをクリック
- 詳細をクリック
- 下にスクロールして無題のプロジェクトをクリック
- 許可
これでできあがり。
動作
C列にデータが入ると、A列に日付、J列からL列まで成形されたデータが入力されます。
「OK Google、領収書、○○商店で2000円、材料費」、または「OK Google、領収書、○○商店に2000円、材料費」でも入りますが、1000円が2000円と認識する時があります。
音声入力がうまく伝わらなったときは、C列に入力された音声入力データを書き換えればOK。
1000円の領収書を「OK Google、領収書、○○商店に1000円、材料費」で入力して、「領収書 ○○商店2000円 材料費」のように入力されたら、消して入力し直しか、パソコン上で「領収書 ○○商店に1000円 材料費」と変更すればOK。
実際は、領収書シートを表示しながらGoogleHomeに話した方が確認ができてよいです。
コメント