@BurdenBear
2019-03-19T01:57:41.000000Z
字数 5058
阅读 550
未分类
这里列出了一些工具格式化后的excel公式以及我们预期希望得到的格式化结果。
=IF(SUM( IF(FOO = BAR, 100 + 3000 + 1000000000000000000000000000000000000000000000000000000 + 10000000000000000000000000000000000000000000000000000000 + 100000000000000000000000000000000000000000000, 0) , SUM(1, 10, 0)) = 20 , "FOO", "BAR")
=IF(SUM(IF(FOO = BAR,100 + 3000 + 1000000000000000000000000000000000000000000000000000000 + 10000000000000000000000000000000000000000000000000000000 + 100000000000000000000000000000000000000000000,0),SUM(1,10,0)) = 20,"FOO","BAR")
= IF(SUM(IF(FOO = BAR,100 + 3000 + 1000000000000000000000000000000000000000000000000000000 + 10000000000000000000000000000000000000000000000000000000 + 100000000000000000000000000000000000000000000,0),SUM(1,10,0)) = 20,"FOO","BAR")
IF(SUM(IF(FOO = BAR, 100 + 3000 +1000000000000000000000000000000000000000000000000000000 +10000000000000000000000000000000000000000000000000000000 +100000000000000000000000000000000000000000000, 0),SUM(1, 10, 0)) = 20, "FOO", "BAR")
对于含有参数但是很短的公式,不一定需要换行;对于不包含函数的公式,如果计算式很长,也应该进行换行。
=SUM(12341234, 1234, 1234, 1234123412341234, 1234, 1234, 1234, 123412341234, 123412341234123412341234, SUM({123124, 123124123124, 123124123124, 123124123124, 123124}))
=SUM(12341234,1234,1234,1234123412341234,1234,1234,1234,123412341234,123412341234123412341234,SUM({ 123124,123124123124,123124123124,123124123124,123124ARRAYROWSTOP)ARRAYSTOP)))
= SUM(12341234,1234,1234,1234123412341234,1234,1234,1234,123412341234,123412341234123412341234,SUM({123124,123124123124,123124123124,123124123124,123124}))
=SUM(12341234, 1234, 1234, 1234123412341234, 1234, 1234, 1234, 123412341234,123412341234123412341234,SUM({123124, 123124123124, 123124123124, 123124123124, 123124}))
Beautifier的结果包含数组的时候有些BUG,期望的结果要尽可能保持紧凑。
IF( FOO = BAR, IF( FOO = BAR, IF( FOO = BAR, IF(FOO = BAR, IF(FOO = BAR, IF(FOO = BAR, IF(FOO = BAR, 1, 2), 2), 2), 2), 2), 2), 2)
=IF(FOO = BAR,IF(FOO = BAR,IF(FOO = BAR,IF(FOO = BAR,IF(FOO = BAR,IF(FOO = BAR,IF(FOO = BAR,1,2),2),2),2),2),2),2)
IF(FOO = BAR,IF(FOO = BAR,IF(FOO = BAR,IF(FOO = BAR,IF(FOO = BAR,IF(FOO = BAR,IF(FOO = BAR,1,2),2),2),2),2),2),2)
IF(FOO = BAR,IF(FOO = BAR,IF(FOO = BAR,IF(FOO = BAR,IF(FOO = BAR, IF(FOO = BAR, IF(FOO = BAR, 1, 2), 2), 2), 2),2), 2), 2)
在嵌套比较深的时候确实不好处理,像beautifier其实规则和咱们一开始的版本类似,只是对函数的参数部分进行了换行处理,这样看得比较清楚。yapf的风格是尽量紧凑,可能会牺牲一些代码的可读性。
=IF((B3="女")*(C3>=55)+(B3="男")*(C3>=60),"退休","")
=IF(( B3 = "女" ) * ( C3 >= 55 ) + ( B3 = "男" ) * ( C3 >= 60 ),"退休","")
= IF((B3 = "女") * (C3 >= 55) + (B3 = "男") * (C3 >= 60),"退休","")
=IF((B3 = "女") * (C3 >= 55) + (B3 = "男") * (C3 >= 60),"退休","")
=VLOOKUP(F8,IF({1,0},$B$4:$B$9,$A$4:$A$9),2,0)
=VLOOKUP(F8,IF({1,0},$B$4:$B$9,$A$4:$A$9),2,0)
= VLOOKUP(F8,IF({1,0},$B4:$B9,$A4:$A9),2,0)
=VLOOKUP(F8,IF({1, 0},$B$4:$B$9,$A$4:$A$9), 2, 0)
=SUM(SUMIF(A13:A20,{"北京","上海","广州"},B13:B20))
=SUM(SUMIF(A13:A20,{"北京","上海","广州"},B13:B20))
= SUM(SUMIF(A13:A20,{"北京","上海","广州"},B13:B20))
=SUM(SUMIF(A13:A20,{"北京", "上海", "广州"},B13:B20))
=INDEX(B24:F32,MATCH(I24,A24:A32,0),MATCH(I25,B23:F23,0))
=INDEX(B24:F32,MATCH(I24,A24:A32,0),MATCH(I25,B23:F23,0))
= INDEX(B24:F32,MATCH(I24,A24:A32,0),MATCH(I25,B23:F23,0))
=INDEX(B24:F32,MATCH(I24, A24:A32, 0),MATCH(I25, B23:F23, 0))
=B36&COUNTIF(B$36:B36,B36)
=B36 &COUNTIF(B$36:B36,B36)
= B36&COUNTIF(B$36:B36,B36)
= B36 & COUNTIF(B$36:B36, B36)
=IF(A2>=90,"優等",IF(A2>=80,"甲等",IF(A2>=70,"乙等","丙等")))
=IF(A2 >= 90,"優等",IF(A2 >= 80,"甲等",IF(A2 >= 70,"乙等","丙等")))
= IF(A2 >= 90,"優等",IF(A2 >= 80,"甲等",IF(A2 >= 70,"乙等","丙等")))
=IF(A2 >= 90,"優等",IF(A2 >= 80,"甲等",IF(A2 >= 70, "乙等", "丙等")))
=SUMIF(A54:A66,">=2018/1/1",C54:C66)-SUMIF(A54:A66,">=2018/6/1",C54:C66)
=SUMIF(A54:A66,">=2018/1/1",C54:C66) -SUMIF(A54:A66,">=2018/6/1",C54:C66)
= SUMIF(A54:A66,">=2018/1/1",C54:C66) - SUMIF(A54:A66,">=2018/6/1",C54:C66)
=SUMIF(A54:A66,">=2018/1/1",C54:C66)- SUMIF(A54:A66,">=2018/6/1",C54:C66)
=SUM(SUMIF(A54:A66,{">=2018/1/1",">=2018/6/1"},C54:C66) * {1,-1})
=SUM(SUMIF(A54:A66,{ ">=2018/1/1", ">=2018/6/1" },C54:C66) * { 1, - 1})
= SUM(SUMIF(A54:A66,{">=2018/1/1",">=2018/6/1"},C54:C66) * {1,-1})
=SUM(SUMIF(A54:A66,{">=2018/1/1", ">=2018/6/1"},C54:C66) * {1, -1})
=AVERAGEIFS($D$71:$D$76, $E$71:$E$76, "<23", $E$71:$E$76, ">18.5")
=AVERAGEIFS($D$71:$D$76,$E$71:$E$76,"<23",$E$71:$E$76,">18.5")
= AVERAGEIFS($D$71:$D$76,$E$71:$E$76,"<23",$E$71:$E$76,">18.5")
=AVERAGEIFS($D$71:$D$76,$E$71:$E$76,"<23",$E$71:$E$76,">18.5")
这里还有个想法,如果都是简单的式子,可不可以把判断区域和判断条件放到一行。例如这样:
=AVERAGEIFS($D$71:$D$76,$E$71:$E$76, "<23",$E$71:$E$76, ">18.5")
=IFERROR(INDEX($B$81:$B$91,SMALL(IF(D$80=$A$81:$A$91,ROW($B$81:$B$91)-2,""), ROW()-2)),"")
=IFERROR(INDEX($B$81:$B$91,SMALL(IF(D$80 = $A$81:$A$91,ROW($B$81:$B$91) - 2,""),ROW() - 2)),"")
= IFERROR(INDEX($B$81:$B$91,SMALL(IF(D$80 = $A$81:$A$91,ROW($B$81:$B$91)-2,""),ROW()-2)),"")
=IFERROR(INDEX($B$81:$B$91,SMALL(IF(D$80 = $A$81:$A$91,ROW($B$81:$B$91) - 2,""),ROW() - 2)),"")