繁体   English   中英

Python 将变量嵌入到 excel 公式中

[英]Python Imbedding a variable into a excel formula

我将 DAY 变量用于字符串公式的方法无法正常工作。 这种在 SQL 查询和文件路径中使用变量的方法很多次,但是我不知道为什么现在不行。

date = '09-13'
DAY = int(date[3:])
templateFormula = f'=SUMPRODUCT(SUMIF(INDIRECT("'"&'Ref Sheet'!$A$1:$A${DAY}&"'!$E$2:$E$150"),$D2,INDIRECT("'"&'Ref Sheet'!$A$1:$A${DAY}&"'!$K$2:$K$150")))'
print(templateFormula)

预期结果:

=SUMPRODUCT(SUMIF(INDIRECT("'"&'Ref Sheet'!$A$1:$A$13&"'!$E$2:$E$150"),$D2,INDIRECT("'"&'Ref Sheet'!$A$1:$A$13&"'!$K$2:$K$150")))

实际结果

=SUMPRODUCT(SUMIF(INDIRECT("'"&'Ref Sheet'!$A$1:$A${DAY}&"'!$E$2:$E$150"),$D2,INDIRECT("'"&'Ref Sheet'!$A$1:$A${DAY}&"'!$K$2:$K$150")))

以这种方式应用公式

        for t, CELLObj in enumerate(WS['E'], 1): 
            if t > 1:
                CELLObj.value = '=SUMPRODUCT(SUMIF(INDIRECT("'"&'Ref Sheet'!$A$1:$A${DAY}&"'!$E$2:$E$150"),$D{0},INDIRECT("'"&'Ref Sheet'!$A$1:$A${DAY}&"'!$K$2:$K$150")))'.format(t)

尝试在该字符串上使用format

date = '09-13'
DAY = int(day[3:])
templateFormula = '=SUMPRODUCT(SUMIF(INDIRECT("'"&'Ref Sheet'!$A$1:$A${DAY}&"'!$E$2:$E$150"),$D2,INDIRECT("'"&'Ref Sheet'!$A$1:$A${DAY}&"'!$K$2:$K$150")))'.format(DAY)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM