xlsxwriter:函数 VLOOKUP,SUMIF 显示#NAME?错误
xlsxwriter: Functions VLOOKUP, SUMIF shows #NAME? error
我正在使用 python 脚本,该脚本使用 xlsxwriter
动态生成 MS Excel 文件。我现在几乎完成了我的任务,现在在生成的 Excel 文件中遇到函数错误。函数 VLOOKUP
和 SUMIF
被错误转换,当我手动替换单元格中的任何字符(在公式中)时,#NAME?
错误消失并显示实际值。 python 脚本的 MWE 粘贴在下面:
#!/usr/bin/env python
# -*- coding: latin-1 -*-
import xlsxwriter
workbook = xlsxwriter.Workbook('test.xlsx', {'strings_to_numbers': True})
worksheet1 = workbook.add_worksheet('Summary')
worksheet1.write_string('A1', 'Head A')
worksheet1.write_string('B1', 'Head B')
worksheet1.write_string('C1', 'Head C')
worksheet1.write_string('A2', '001')
worksheet1.write('B2', '1000')
worksheet1.write('C2', 'Tom')
worksheet1.write_string('A3', '002')
worksheet1.write('B3', '1050')
worksheet1.write('C3', 'Jerry')
worksheet1.write_string('A4', '001')
worksheet1.write('B4', '100')
worksheet1.write('C4', 'Tom')
worksheet1.write_string('A5', '002')
worksheet1.write('B5', '150')
worksheet1.write('C5', 'Jerry')
worksheet2 = workbook.add_worksheet('Test')
worksheet2.write_string('A1', 'Head A')
worksheet2.write_string('B1', 'Head B')
worksheet2.write_string('C1', 'Head C')
for i in range(2):
worksheet2.write_string('A%s' % (i + 2), str('%03d' % (i + 1)))
worksheet2.write_formula('B%s' % (i + 2), '=SUMIF(Summary.A2:A100,A%s,Summary.B2:B100)' % (i + 2))
worksheet2.write_formula('C%s' % (i + 2), '=VLOOKUP(A%s,Summary.A2:C100,3,0)' % (i + 2))
workbook.close()
即使我在 python 脚本中给出 =SUMIF(Summary.A2:A100,A%s,Summary.B2:B100)
,它在 XLSX 文件中显示为 =SUMIF(summary.a2:a100,a%s,summary.b2:b100)
。 VLOOKUP
也是如此。谁能帮我解决这个问题。
公式语法不正确。应该是:
=SUMIF(Summary!A2:A100,...
即,您应该使用 !
而不是 .
。
我正在使用 python 脚本,该脚本使用 xlsxwriter
动态生成 MS Excel 文件。我现在几乎完成了我的任务,现在在生成的 Excel 文件中遇到函数错误。函数 VLOOKUP
和 SUMIF
被错误转换,当我手动替换单元格中的任何字符(在公式中)时,#NAME?
错误消失并显示实际值。 python 脚本的 MWE 粘贴在下面:
#!/usr/bin/env python
# -*- coding: latin-1 -*-
import xlsxwriter
workbook = xlsxwriter.Workbook('test.xlsx', {'strings_to_numbers': True})
worksheet1 = workbook.add_worksheet('Summary')
worksheet1.write_string('A1', 'Head A')
worksheet1.write_string('B1', 'Head B')
worksheet1.write_string('C1', 'Head C')
worksheet1.write_string('A2', '001')
worksheet1.write('B2', '1000')
worksheet1.write('C2', 'Tom')
worksheet1.write_string('A3', '002')
worksheet1.write('B3', '1050')
worksheet1.write('C3', 'Jerry')
worksheet1.write_string('A4', '001')
worksheet1.write('B4', '100')
worksheet1.write('C4', 'Tom')
worksheet1.write_string('A5', '002')
worksheet1.write('B5', '150')
worksheet1.write('C5', 'Jerry')
worksheet2 = workbook.add_worksheet('Test')
worksheet2.write_string('A1', 'Head A')
worksheet2.write_string('B1', 'Head B')
worksheet2.write_string('C1', 'Head C')
for i in range(2):
worksheet2.write_string('A%s' % (i + 2), str('%03d' % (i + 1)))
worksheet2.write_formula('B%s' % (i + 2), '=SUMIF(Summary.A2:A100,A%s,Summary.B2:B100)' % (i + 2))
worksheet2.write_formula('C%s' % (i + 2), '=VLOOKUP(A%s,Summary.A2:C100,3,0)' % (i + 2))
workbook.close()
即使我在 python 脚本中给出 =SUMIF(Summary.A2:A100,A%s,Summary.B2:B100)
,它在 XLSX 文件中显示为 =SUMIF(summary.a2:a100,a%s,summary.b2:b100)
。 VLOOKUP
也是如此。谁能帮我解决这个问题。
公式语法不正确。应该是:
=SUMIF(Summary!A2:A100,...
即,您应该使用 !
而不是 .
。