openpyxlでセルの数式をコピーすると絶対参照になります。

相対参照にするには後から数式を入れ直す必要があります。

Translatorというモジュールも使えそうですが、format関数でやってみました。

 

合成したセル番地で数式を作成しても変数名がそのまま数式に組み込まれます。

数式ごと合成すればうまくいきます。

ちょっとした小技です。野暮ったい方法なので別解を探しましたが見つからず、やむなく採用しました。

 

コード例

------------------------------

sum1 = "=sum({}:{})"
sum2 = sum1.format(cell1 , cell2)
ws[sum_cell] = sum2

------------------------------

 

注意:ws[sum_cell].value = sum2 で実行するとエクセルファイルが壊れました。

AD