![見出し画像](https://assets.st-note.com/production/uploads/images/123699222/rectangle_large_type_2_32e2e7951253ec5b7cd18a6b1b49f3f7.jpeg?width=800)
Excelの単純作業を自動化するChatGPTの使い方6選
AIにExcel達人を描かせるとどうしてもカメラマン風になっちゃうイラストで始まる今回は、Excelの単純作業をどうにか効率化する方法の紹介です。いつものように、ExcelとChatGPTの連携には、Excel用のアドイン『生成AIツール for Excel』(アドイン無料、ChatGPT別料金)を使います。
このデータの名字と名前を別にしてくれる?
「氏名」を入力してもらうとき、姓だけを使う用途がないと考えて、姓・名を分けていないデータがあります。ところがフルネームで「伊藤さち子様」(例)と表示すると格式ばってると気付き、「ああ、姓名をわけて入力してもらえば、『伊藤さま』と表示できるのに」と思うわけです。新人が側にいると「これやって」なんて頼んじゃいますが、頼まれた側に「つまんない仕事」と思われることは間違いないです。
そんなときは、ChatGPTの出番です。
=BB.ASK(CONCAT("名字(姓)のみ抽出し、一語で答えてください: ",[@氏名]))
=BB.ASK(CONCAT("下の名前のみ抽出し、一語で答えてください: ",[@氏名]))
Excelに上記のような式を書くことで、ChatGPTで姓名を分離できます。50件のサンプルデータでは、誤認識はありませんでした。優秀な新人です。
![](https://assets.st-note.com/img/1701783902502-Mztbirx19m.png)
名字と名前の分離
このデータ、人名に「様」、会社名に「御中」を付けてくれる?
自社イベントの招待客のリストを作り終わって、招待状を印刷する直前になって敬称データがなかったことに気付いたことはありますか。私はあります。送り先を法人も個人も「名称」という列にまとめてしまい、「御中」と「様」を使い分けるには手作業が必要になる。ああ困った、というときはChatGPTに任せましょう。
=BB.ASK(CONCAT("次のテキストが法人名なら「御中」、人名なら「様」と応答してください",[@名称]))
たったこれだけの指示で、ChatGPTは敬称を付けてくれます。
![](https://assets.st-note.com/img/1701784605264-b7XAzgEtZC.png)
先頭に、伊藤忠、内田洋行、マツモトキヨシという、人名なんだけど社名のトラップを混ぜたのですが、見事に見破られました。
このデータによみがな入れておいて
社内データの名寄せをすると、データの解像度が揃わないことがあります。たとえば、古い通販システム時代の顧客データにはふりがながなく、新システムにはある。データを揃えると、ふりがなのない行がどうにも目立ってしまった気持ち悪い。こんなときは、ChatGPTにふりがなを付けてもらいましょう。
=BB.ASK(CONCAT("次のテキストにふりがなを付けてください: ",[@名称]))
会社名も含めてふりがなを付けさせてみましたが、誤認識なく作業できました。
![](https://assets.st-note.com/img/1701785216032-s0YIBmsFgT.png?width=800)
住所データを要素に分解して
ひとつのセルに郵便番号から市区町村以降までが全部入っているデータはときどき見かけます。住所が別々に格納されていれば、別の行に印刷したり、都道府県別に集計できたりして便利です。ChatGPTに住所を分解させるには、以下のように指示するだけです。
=BB.ASK(CONCAT("次のテキストから郵便番号のみを抽出して、XXX-XXXXの形式で応答してください: ",[@住所]))
=BB.ASK(CONCAT("次のテキストから都道府県のみを抽出して、都、道、府、県を付けて応答してください: ",[@住所]))
=BB.ASK(CONCAT("次のテキストから市区町村のみを抽出して、市、区、町、村を付けて一語で応答してください: ",[@住所]))
上記のように指示することで、郵便番号、都道府県、市区町村を抽出できます。
![](https://assets.st-note.com/img/1701785871445-Z6B1yPr6Rx.png?width=800)
ただし、50件中3件で失敗していました。たとえば「〒290-0030 福岡県福岡市西区西30-30-30」という住所の市区町村を「福岡市、西区」と応答してしまうのです。そこで、市区町村以降の住所を抽出にはChatGPTを使わず、以下のようなExcelの式を使うことにしました。
=MID([@住所],FIND([@市区町村],[@住所])+LEN([@市区町村]),LEN([@住所])-FIND([@市区町村],[@住所])-LEN([@市区町村])+1)
ちょっとわかりにくいですが、要するに住所内の市区町村以降だけを取り出しています。こうすると、うまく抽出できなかった場合に「#VALUE!エラー」になるので、ChatGPTの誤動作に気づけます。
![](https://assets.st-note.com/img/1701786081048-ns3QE6Bw0A.png?width=800)
クレームを分類しておいて
お客様からのクレームには、さまざまな内容が含まれます。「不味かった」であればすぐに対応しなくてもいいかもしれませんが、「いつもより苦かった」であれば何か対応が必要かもしれません。しかし、膨大なデータをひとつの価値観で分類するのは案外大変です。そんなときは、以下の式で分類できます。
=BB.CATEGORIZE([@クレーム],{"賞味期限","パッケージ","品質・味","量・サイズ","アレルギー","色・香り"})
上記の式で、テキストをそれぞれのカテゴリーに分けてくれます。
![](https://assets.st-note.com/img/1701786432022-hhtWpRs6m8.png?width=800)
メールアドレスのエラーがないか調べられる?
Excelで連絡先を管理するのはよくあると思います。しかし、何かの都合でメールアドレスが壊れていたり、そもそも間違って入力されていたりすることにあとで気付くことがあります。従来は正規表現で検出していたことも、ChatGPTなら有効かどうか機械に判定させるだけで済みます。
=BB.ASK(CONCAT("これは有効なメールアドレスですか? 「はい」か「いいえ」で答えてください: ",[@メールアドレス]))
上記の式で50件のサンプルを判定させましたが、誤認識なく判定されました。
![](https://assets.st-note.com/img/1701787007483-hfEpxrGjsW.png)
「example..name@test.com」や「no-reply@eaxmple.com」という気付きにくい間違いも混ぜてみましたが、正確に判定しました。正規表現危うしです。
今回のサンプルファイルは、以下からダウンロードできます。
新人の仕事がなくなっちゃいますね。日本のOJTはどうなるんでしょうか。