実現したいこと
openpyxlでExcelファイルに数式を埋め込み、Excelファイルで重複と空白を除いた複数条件でのカウントを計算したい
発生している問題・分からないこと
.pyファイルはエラーなく終了し、出力されたExcelファイルを開く際にエラーメッセージが表示されます。
エラーメッセージ
error
1'ファイル名.xlsx' の一部の内容に問題が見つかりました。可能な限り内容を回復しますか? ブックの発行元が信頼できる場合は、[はい] をクリックしてください。
該当のソースコード
python
1import openpyxl 2 3wb = openpyxl.Workbook() 4ws=wb.create_sheet(title=s1) 5 6 for i in range(3,6): 7 ws.cell(i,3).value='=SUM((UNIQUE(FILTER(B9:B58,C9:C58=A'+str(i)+',""))<>"")*1)' 8 9wb.save('ファイル名.xlsx')
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
teratail, Googleで検索しましたが、同様の質問・解決策を見つけられませんでした。
検索ワード
openpyxl 数式, openpyxl 配列関数 など
試したこと
手順1:ソースコード変更
ws.cell(i,3).value='=SUM((UNIQUE(FILTER(B9:B58,C9:C58=A'+str(i)+',""))<>"")*1)'
を下記の様に変更した
ws.cell(i,3).value='SUM((UNIQUE(FILTER(B9:B58,C9:C58=A'+str(i)+',""))<>"")*1)'
手順2:結果を確認
出力されたエクセルファイルを開き、該当セルに下記が格納されていることを確認した
SUM(UNIQUE(FILTER(B9:B58,C9:C58=A'+str(i)',"")<>"")*1)
手順3:エクセル関数の確認
該当セルをダブルクリック、先頭に=を加えた
結果
関数が正常に作動
補足
office365使用

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/01/20 09:31
2024/01/21 04:18