'''
===逻辑书写===
涉及的单元格过多,不方便逻辑分析
先用文字代替单元格,书写逻辑。
再把文字替换掉。
'''
def wenzi_zhuan_gongshi():
a = '''=IFS(指标>基准值,0,指标>=挑战值,权重*(0.5+(1-(指标-挑战值)/(基准值-挑战值))*0.5),指标<=挑战值,权重)
'''
a = a.replace('挑战值' ,'c2')
a = a.replace('权重' ,'D2')
a = a.replace('基准值' ,'B2')
a = a.replace('指标' ,'汇总数据!O3')
print(a)
# wenzi_zhuan_gongshi()
'''
纵向数据,转至成横向。
'''
def shu_zhuan_heng_01():
begin_index = 53#单元格开始的行号
begin_zimu = "I"#单元格开始的列号
xunhuan_cishu = 12#循环次数
for i in range(begin_index ,xunhuan_cishu +begin_index):
a = '=IF(数据!XXX01>0,8,0)'
a = a.replace("XXX01" ,begin_zimu +str(i))
#a = a.replace("XXX01", begin_zimu + str(i))#每一条替换一个参数,可以罗列
print(a ,end='\t')
#shu_zhuan_heng_01()
'''
线性得分,递增得分。
'''
def xianxing_defen_dizeng():
a = '''=IFS(位置<=值_最低,分数_最低,位置<值_最高,(位置-值_最低)/(值_最高-值_最低)*(分数_最高-分数_最低),位置>=值_最高,分数_最高)'''
a = a.replace('位置', "E38")
a = a.replace('值_最低',"70%" )
a = a.replace('值_最高', "100%")
a = a.replace('分数_最低', "0")
a = a.replace('分数_最高', "6")
print(a)
# xianxing_defen_dizeng()
'''
线性得分,递减得分。
'''
def xianxing_defen_dijian():
a = '''=IFS(位置<=值_最低,分数_最高,位置<值_最高,(值_最高-位置)/(值_最高-值_最低)*(分数_最高-分数_最低),位置>=值_最高,分数_最低)'''
a = a.replace('位置', "E38")
a = a.replace('值_最低',"70%" )
a = a.replace('值_最高', "100%")
a = a.replace('分数_最低', "0")
a = a.replace('分数_最高', "6")
print(a)
# xianxing_defen_dijian()
'''
超过80%,每超1%,得1分。
最多得10分。MIN(得分公式,10)
最多扣10分。MAX(得分公式,-10)
'''
def chaobiao_defen():
#超过80%,每超1%,扣1分。
a = '''=IF(真实_值>标准_值,舍入(ROUND((真实_值-标准_值)/每超_值,2),0)*(得分_值),0)'''
#a = a.replace('舍入', "ROUNDUP") # 向上舍入 ,1.3算2。
a = a.replace('舍入', "ROUNDDOWN")#向下舍入 ,不足不处理,如1.3算1。
a = a.replace('真实_值', "E3")
a = a.replace('标准_值', "80%")
a = a.replace('每超_值', "1%")
a = a.replace('得分_值', "-5")
print(a)
#chaobiao_defen()
'''
低于80%,每低1%,得-2分。
最多得10分。MIN(得分公式,10)
最多扣10分。MAX(得分公式,-10)
'''
def dibiao_defen():
#超过80%,每超1%,扣1分。
a = '''=IF(真实_值<标准_值,舍入(ROUND((标准_值-真实_值)/每低_值,2),0)*(得分_值),0)'''
# a = a.replace('舍入', "ROUNDUP") # 向上舍入 ,1.3算2。
a = a.replace('舍入', "ROUNDDOWN")#向下舍入 ,不足不处理,如1.3算1。
a = a.replace('真实_值', "E3")
a = a.replace('标准_值', "80%")
a = a.replace('每低_值', "1%")
a = a.replace('得分_值', "-2")
print(a)
#dibiao_defen()
excel公式编写简化,Python生成公式
于 2022-12-06 09:45:20 首次发布