本日は、Excelワークシートに数式を書き込む、コピーするpythonコードです。
資料はこちら → Python & Excelその4
p.1 先ずはセルに式を書き込むコードです。wb=load_workbook('ファイル名')でExcelファイルを読み込み、「ws[セル番地] = 設定する数式(文字列)」のコードで簡単に数式を入れ込むことができます。
p.2 先ず、「別のシートの数値を参照する」ことをExcel関数で説明します。「VLOOLUP」は、Excelで用いると便利な関数です。例えば、202004シートの赤枠の範囲の1列目に202005シートのB2セルと同じものを見つけ、それに対応する3列目の値を、202005シートのE2セルにコピぺする際に、「=VLOOKUP(B2,’202004’!$B$2:$D11,3,FALSE)」をセルに書き込みます。この式を縦方向にコピーします。
p.3 前ページの手順をpythonで実行するコードです。「ws.iter_rows(最初の行、最後の行)」は、括弧内の範囲の行を取得するコードです。「row[0].row」は、行毎の0列目の値を意味し、その値をrow_countに代入します。 「row[4].value」は、行毎の4列目の値です。「f’(文字列(数値))’」は、文字列内に数値が入ることを意味する重宝なコードです。「VLOOKUP」以降は、Excelと項目は同じですが、変数が入っています。
p.4 「数式を相対参照で横方向にコピペ」するpythonコードです。「translator(コピーする式, 相対参照するセル番地).translate_formula(コピーするセル番地)」に必要事項を書き込めばできます。
p.5 「数式を相対参照で縦方向にコピペ」するpythonコードです。D6に「=C6-B6」の算出式を入力し、以下の行にコピーするコードで、前ページと同様のコード「translator」です。
Excelで関数の使い方を知っていれば、pythonで変数に置き換えるだけで容易にコードが作成できそうです。Excelのマクロはファイル内では有効ですが、pythonはシート間でのやり取りも可能なので、汎用性が高いと思われます。
本日の相田みつを語録は、「かげぐちをいわれることを知りながら ほめられればすぐ のぼせるわたし」です。