xlwingsでExcelを自由自在に!シート内検索テクニック完全ガイド

Excel

ExcelをPythonで操作するための便利なライブラリとして注目されている「xlwings」。Excel業務をPythonで効率化したい方には必須のツールです。

今回は、xlwingsでシート内を検索する方法について詳しく解説します。日常のデータ管理や分析で頻繁に利用される「検索」機能を、Pythonでどのように活用できるのか、基本から応用までしっかりご紹介します。

xlwingsとは?

まずは、簡単に「xlwings」についておさらいしましょう。

xlwingsは、Excelの操作をPythonから実行できるライブラリです。VBAを使用せずにExcelファイルをPythonで管理・操作できるため、Pythonを使ったデータ分析や自動化がExcelユーザーの間で非常に人気です。

ゆーや
ゆーや

xlwingsのインストールや基本操作が知りたい方は、以下の記事に詳しく書いてあるよ!ぜひ見てね!

検索方法

ゆーや
ゆーや

対象のExcelファイルとフォルダ構成は以下のようなものを想定しています!

シート内を検索する基本方法

xlwingsを使えば、Excelシート内を簡単に検索することができます。例えば、シート全体から特定の文字列や値を検索する場合は、次のようにします。

import xlwings as xw

# Excelファイルを開く
wb = xw.Book('都道府県情報.xlsx')
ws = wb.sheets['都道府県一覧']

# シート内を検索
search_value = "東京都"
found = False

# シートの全セルをループして検索
for cell in ws.range("A1").expand():
    if cell.value == search_value:
        print(f"見つかった場所: {cell.address}")
        found = True
        break

if not found:
    print("値が見つかりませんでした")

wb.close()
ゆーや
ゆーや

ws.range(“A1”).expand() でシートの範囲を取得し、各セルの value 属性と検索する値を比較しています!

特定の行から検索する方法

次に、「特定の行」から検索する方法をご紹介します。特に、大量のデータがある場合、すべてを検索するよりも、特定の範囲を絞って検索する方が効率的です。

import xlwings as xw

# Excelファイルを開く
wb = xw.Book('都道府県情報.xlsx')
ws = wb.sheets['都道府県一覧']

search_value = "知事の名前"

# 1行目の範囲を指定して検索
found = False

for cell in ws.range("1:1"):
    if cell.value == search_value:
        print(f"見つかった場所: {cell.address}")
        found = True
        break

if not found:
    print("値が見つかりませんでした")

wb.close()
ゆーや
ゆーや

rangeの中身を数値で指定してあげることで行を指定できるよ!

行がわかる時は、すべてを検索するのではなく、行で検索しましょう!

特定の列から検索する方法

次に、「特定の列」を検索対象とする方法です。例えば、B列から検索する場合のコードは以下の通りです。

import xlwings as xw

# Excelファイルを開く
wb = xw.Book('都道府県情報.xlsx')
ws = wb.sheets['都道府県一覧']

search_value = "東京都"

# B列の範囲を指定して検索
found = False

for cell in ws.range("B:B"):
    if cell.value == search_value:
        print(f"見つかった場所: {cell.address}")
        found = True
        break

if not found:
    print("値が見つかりませんでした")

wb.close()
ゆーや
ゆーや

rangeの中身をアルファベットで指定することで列をしてできます!
特に縦に長いデータセットでは、この方法がとても役に立ちます。列全体や特定の列範囲だけを検索したい場合には、この方法を活用しましょう。

複数条件での検索方法

次に、「複数の条件」を指定して検索する方法をご紹介します。例えば、「中部地方」で かつ 面積が13000㎢より大きい都道府県名を表示してみます!

import xlwings as xw

# Excelファイルを開く
wb = xw.Book('都道府県情報.xlsx')
ws = wb.sheets['都道府県一覧']

# シート内を検索
# 地方についての条件
condition_1 = "中部地方"
# 面積についての条件
condition_2 = 13000

found = False

# シートの全セルをループして検索
for cell in ws.range("F:F"):
    if cell.value == condition_1:
        # 条件1を満たした行のD列の値を条件2と比較
        if ws.range((cell.row, 4)).value > condition_2:
            # 条件にマッチした都道府県名を表示
            print(f"見つかった値: {ws.range((cell.row, 2)).value}")
            found = True
            break

if not found:
    print("値が見つかりませんでした")
    
wb.close()
ゆーや
ゆーや

まず、条件①について検索を掛けて、引っかかったセルの情報から
更に条件②を満たすかチェックする!この方法なら条件がいくつでも大丈夫だね!

【実践】検索結果をハイライト表示する方法

import xlwings as xw

# Excelファイルを開く
wb = xw.Book('都道府県情報.xlsx')
ws = wb.sheets['都道府県一覧']

search_value = "東京都"

# B列の範囲を指定して検索
found = False

for cell in ws.range("B:B"):
    if cell.value == search_value:
        cell.color = (255, 255, 0) 
        found = True
        break

if not found:
    print("値が見つかりませんでした")

wb.save("ハイライト済み.xlsx")
wb.close()
ゆーや
ゆーや

業務ではこんな使い方もあると思います!

セルの色は、cell.colorで変更可能ですよ!

まとめ

今回の記事では、xlwingsを使ってシート内の検索を効率的に行う方法について解説しました。以下のポイントが重要です。

  • シート全体の検索方法
  • 特定の行や列を検索する方法
  • 複数条件での検索やカスタマイズ
  • 検索結果のハイライト表示

Pythonとxlwingsを組み合わせることで、Excel業務が一層スムーズに。検索処理を自動化し、日々の業務効率化に役立ててください。

この記事を参考に、ぜひ皆さんもxlwingsを使った高度なExcel操作に挑戦してみてください!

コメント

タイトルとURLをコピーしました