MENU

Excelの非表示行をPythonの集計から外す方法

当ページのリンクには広告(PR)が含まれていることがあります。
Excelの非表示行をPythonの集計から外す方法。非表示の明細、対象行を決める、集計対象の確認の処理例。

Excelで隠した行もPythonで値を読むと通常どおり取り出されます。画面では見えていない行を含めて集計し、利用者が見ている合計とずれる場合があります。

明示的に非表示にされた行を除外したいなら、openpyxlのrow_dimensionsにあるhiddenを見て、集計対象を選びます。ただし、非表示の状態と、業務上の集計対象は別の条件です。隠れているから除外するという規則でよいかも確認します。

目次

非表示にした三行目を除外

次は見出しと三明細を持つ架空のシートです。三行目の200だけを非表示にします。全行の合計と、非表示フラグが付いていない行の合計を比べます。

from openpyxl import Workbook

book = Workbook()
sheet = book.active
sheet.append(["ID", "金額"])
sheet.append(["A", 100])
sheet.append(["B", 200])
sheet.append(["C", 50])
sheet.row_dimensions[3].hidden = True

all_total = 0
visible_total = 0
excluded = []
for row in sheet.iter_rows(min_row=2, max_row=4):
    row_number = row[0].row
    amount = row[1].value
    all_total += amount
    if sheet.row_dimensions[row_number].hidden:
        excluded.append(row_number)
        continue
    visible_total += amount

print("全行の合計:", all_total)
print("非表示を除く合計:", visible_total)
print("除外した行:", excluded)
assert all_total == 350 and visible_total == 150
assert excluded == [3]
book.close()

全行では350、非表示を除くと150になります。Windows・Python 3.12.10・openpyxl 3.1.5で、行のフラグと集計値を確認しました。Excel画面や実帳票のフィルター結果を確認した例ではありません。

実ファイルでは明細の開始行と終了行を確かめてから処理します。見出しや合計行まで同じ列の数値として足すと、非表示行の扱いが正しくても集計結果はずれます。

フィルター設定を評価する例ではない

openpyxlはAutoFilterの条件をファイルへ設定できますが、その条件に従って行を選別し、非表示へする処理を自動で実行するわけではありません。Excelなどで適用する部分とは分かれます。

そのため、フィルターの条件が書かれたブックを読んだだけで、Excelの画面と同じ行がhiddenに反映されていると決めつけないでください。保存状態も含め、必要な行のフラグを確かめる必要があります。

「部門がAの行を集計する」という業務条件なら、表示状態へ依存させず、部門列の値で抽出する方が処理の意味を説明しやすくなります。今回の例は保存された非表示フラグそのものを使う場面です。

除外した理由を残す

集計結果だけを返すより、元の件数と除外した行番号を残すと、差を説明できます。利用者が行を非表示にしたことを忘れていても、確認する場所が分かります。

グループを折りたたんだ表や、複数シートを使う帳票では、何を表示行とみなすかを追加で決める必要があります。最初は一シートの小さなコピーで、値、行番号、hidden、採用するかを並べて見比べます。

非表示を解除して保存し直す処理は、このコードに含みません。元帳票を変えず、採用した条件を結果へ添えるところから始められます。

セルの読み方はopenpyxl入門、合計を確かめる方法はCSV集計の基本で確認できます。

参考資料

RowDimensionとフィルターの公式資料を2026年11月1日に確認しました。

この記事を書いた人

Watanabeのアバター Watanabe サイト運営者

2020年よりブログ開始。
SEOが思いのほか性にあっていたようで現在に至る。
モットーは「勝率の高い選択をする」
AIは活用するが吉、最後は人間が息を吹き込む。
アートと科学を追求し、日々精進。
―――
収益:6~7桁をウゴウゴ。
サイト:ペラサイト~中規模サイトまで運営中。
案件:1000円以上の案件をメインに取組中。
打ち手:ブラックSEO~ホワイトSEOまで
―――

目次