コース: PythonでExcelデータを処理する

列を挿入する

今度は、列の挿入を説明します。 計算式で横計を取っている場合、 行数が多いと、計算式の調整に 工夫が必要です。 まず、insert_col_01.pay を 見ていきましょう。 これは、計算式の調整を考慮しないで、 列を追加するだけのプログラムです。 sample_3_1.xlsx を開いて、 ひとつだけあるシートに insert_cols メソッドで 列を追加します。 引数に5を指定しているので、 5列目に空白列が追加されます。 そして、 sample3_1_new.xlsx として、 保存します。 実行してみましょう。 空白列が追加されています。 そして、元々横計が取られていたのですが、 1列追加した分が、 考慮されていないので、 F 列が SUM 関数の対象に なっていません。 ではどうすればよいか、見ていきましょう。 insert_col_02.py です。 同様に、insert_cols メソッドで 一列追加した後、 E 列にあった縦計の計算式を F 列に入力しているわけです。 セル F50 の値に、 sum の F2 から F49 として 縦計を取ります。 次に、for...in 句で、 横計を設定していきます。 iter_rows は、 指定した min_rows、 最初の行から、 値が入力されている すべての行を取得します。 つまり、2行目から メダルの数が入力されている、 すべての行を取得します。 そして、row[6].value、 1行追加した表で見ていきましょう。 インデックスは0から始まりますので、 A 列は0です。 0、1、2、3、4、5、6で、 G 列が6になります。 G 列の値として、 f 文字列で SUM 関数式を与えます。 f 文字列は、文字列と 波括弧の中に指定した変数を、 連結してくれる機能です。 row[0] の .row は、 行を返します。 ですから、f 文字列を使って、 =SUM の C2 から F の2という文字列が 作成されます。 この文字列を、メダルの数が 入力されているすべての行に対して 作成していきます。 そして、sample3_1_new として 保存します。 いったん同名のファイルを閉じます。 そして、実行します。 例えば5行目を見ると、 SUM の C5:F5 という 文字列が作成されています。 10 行目を見ると、 SUM の C10:F10 という 文字列が作成されていますね。 これが f 文字列の機能です。 この国別のメダルの合計を求める計算式を、 式のコピー&ペーストで 修正するのは、とても面倒です。 データ件数が多いほど、 プログラムで処理するメリットが 感じられます。

目次