伊田生活ブログのロゴ
HOME  >  勉強
カテゴリー : 勉強 - メモ
•Excel •Python •ChatGPT •Copilot

[メモ]エクセル表のデータの正しさをPythonで検証する準備

公開日:

Excel表のデータの正しさを検証する手段として、Pythonを利用できないか、考えてみます。


エクセル(Excel)の表があったとして、その表に記載されている値が正しいかどうか、確認したいとします。この時、最も基本的な確認の方法は、人間が目視で確認することです。しかし、目視では大量のデータの場合、限界があります。そこで、目視以外の方法を考えます。

私がまず思いつく、目視以外の方法といえば、VBAを使う方法です。エクセルファイルの中に、「セルの内容が正しいかどうか判定するコード」を書いておきます。そして、そのコードを実行します。そうすることで、データの正しさを確かめます。

この方法の難点として、ちょっと手間がかかるということが、挙げられます。VBAを使用するためには、「マクロ有効ブック」を使用する必要があります。エクセル表の内容確認のためだけにマクロを有効にして、実行するという操作は、意外に面倒なものです。

Pythonでエクセルファイルのシートの内容を読み込むことができれば、Pythonでエクセルの内容確認ができそうです。

ChatGPTに以下のプロンプトを送って、Pythonのコードを書いてもらいました。

プロンプト:
===
tmp.xlsx の Sheet1 における、A1セルからA5セルの内容を表示する、Pythonのコードを書いてください。
===

これに対し、ChatGPTは
『以下のPythonコードで、tmp.xlsx の Sheet1 にある A1 から A5 のセルの内容を表示できます。
openpyxl を使用しますので、事前に pip install openpyxl でインストールしてください。』
という応答に続けて、以下のコードを出力しました。

import openpyxl

# Excelファイルを開く
wb = openpyxl.load_workbook("tmp.xlsx")
sheet = wb["Sheet1"]

# A1からA5のセルの内容を取得して表示
for row in range(1, 6):
    print(sheet[f"A{row}"].value)

# ファイルを閉じる
wb.close()

私は、自宅のパソコンにはエクセルが入っていないので、上記のコードの動作を試せません。そこで、Copilotに、「このコードは正しく動きますか?」と聞いてみました。

以下は、Copilotの応答です。

===
はい、このコードは正常に動作します。ただし、いくつかの前提条件があります。

1. openpyxlライブラリがインストールされていること。

2. ファイル名が tmp.xlsx であり、そのパスがコードが実行されるディレクトリ内に存在していること。

3. Excelファイルに Sheet1 というシートが存在していること。

4. Sheet1 の A1 から A5 のセルにデータが入力されていること。

これらの条件が満たされている場合、コードは次のようにして tmp.xlsx ファイルの A1 から A5 のセルの内容を取得して表示します。

もし何か問題が発生する場合は、エラーメッセージを確認していただくと、問題解決に役立つ情報が得られるかもしれません。何か他にお手伝いできることがあれば教えてください!
===

ChatGPTが出力したコードをCopilotにチェックしてもらって、Copilotが大丈夫と言っているので、たぶん大丈夫でしょう。(実際の環境での動作確認が必要です。)


エクセル表の内容の正しさを検証する方法の1つとして、Pythonを利用できそうです。この記事ではその準備として、ファイルを読み込んで内容を表示するコードを、ChatGPTに書いてもらいました。(私は自宅のパソコンにExcelが入っていないので、Copilotにコードを評価してもらいました。)

この方法を使うことで、今まで目視で行っていた確認作業、または、データが多すぎるために実施できていなかった確認作業を、自動で行えるようになると思います。