ExcelのVLookUpをpythonで書き換えてみた

Python画像

参考にした本

AmazonのKindleセールで50%還元セールで買いました:)

どんな本?

pythonを使ったことがなくても問題ないように作られています。

最初の方の章でインストール方法から初期設定、VSCodeの設定まで丁寧に解説してくれています。

プログラミングやったことなくてもできると思いますが、変数くらいの知識があると読みやすいです。

Pythonでエクセルを操作する入門書といった感じ。

Pythonでエクセル触ってるけど、高度なことが知りたいという方にはちょっと簡単すぎるような気がします。

ちなみに本記事でやりたいことは載っていません:)

書いてあることを組み合わせたらできます!

本記事でやりたいこと

下記のようなエクセルの表(果物.xlsx)があったとします。

AB列にはそれぞれ果物と金額が書かれています。

AB列からD1に入力された果物をA列から探し出し、E1にその金額を表示させます。

Excelの場合

Excelでは下記のように関数を使ってことができます。

その結果がE1に表示されています。

Pythonで場合

以下のようにかけます。

実行結果がE2に表示されています。

エクセルのファイルとpythonのソースコードが同じディレクトリにあることを前提としています。

一つずつ解説していきます。

1行目

これはpythonでExcelを操作する為のパッケージを設定しているところです。

openpyxlをインストールしていない方は先にインストールしておきましょう。

ターミナルで以下のコマンドを打つとインストールできます。

3行目

果物.xlsxを開いてwbという変数に格納しています。

もしソースコードのある場所と別のディレクトリにエクセルがある場合は、相対パスや絶対パスで以下のように書くこともできます。

4行目

果物.xlsxの1枚目のシートをwsに格納しています。

下記のようにシートの名前を指定して開くこともできます。

6行目

エクセルのAB列の内容を格納する為のDictionary型の変数を宣言しています。

よくわからないか人はAB列がここに入るのね!くらいの理解でOKです。

Dictionary型とはjavaでいうhashmap的な使い方ができるくらいの理解度です:)

Dictionary型の公式リファレンスはこちら

https://docs.python.org/ja/3/c-api/dict.html

9~11行目

ざっくりいうと

1行目から3行目までのAB列の内容を、

変数fruitsListにキーをA列、valueをB列して格納しています。

{りんご:100}みたいな感じで保存されています。

で100が返ってくる変数の出来上がりです。

13行目

エクセルのE2セルにセルD1の内容がA列にあればその金額を代入しています。

ここがVLOOKUPにあたる処理です。

15行目

ここで変更内容を保存します。

開いたエクセルと同名のファイル名を指定すると上書き保存されます。

もちろん別ファイルとして保存も可能

書き換えてみた感想

前準備がめんどくさいですが、データの数が膨大になってきたりするとpythonで書いた方が快適に操作できました!

VLOOKUPってなぜか存在するはずの値が見つからなかったりして大変な思い出があるのですが、pythonを使えばそういった煩わしさから解放されました!!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


error: Content is protected !!