大神帮我看看,这个如何更简单的实现,还有这个公式是哪里出了问题,目前输入公式显示无效

当洞口类型为矩形时,构建类型中带有门字和梁字,周长为洞口宽+洞口高*2

当洞口类型为矩形时,构建类型中带有窗字和柱字,周长为(洞口宽+洞口高)*2

当洞口类型为拱形时,构建类型中带有门字,周长为(洞口高-拱高)*2+π*(洞口宽)/2

当洞口类型为拱形时,构建类型中带有窗字,周长为洞口宽+(洞口高-拱高)*2+π*(洞口宽)/2

当洞口类型为圆形时,构建类型中带有窗字和柱字,周长为π*洞口宽,

当洞口类型为圆形时,构建类型中带有门字,周长为空值,

当洞口类型为椭圆形时,构建类型中带有窗字,周长为2*π √((洞口宽² + 洞口高²)/2),

当洞口类型为椭圆形时,构建类型中带有门字,周长为空值,

当洞口类型为菱形时,构建类型中带有窗字,周长为4*√((洞口宽/2)^2+(洞口高/2)^2)

当洞口类型为菱形时,构建类型中带有门字,周长为空值,

当洞口类型为异形时,无论构建类型是什么,周长都为空值,

当洞口类型为其他时,无论构建类型是什么,周长都为空值,

目前多维表可以嵌套多少个函数呢?

公式一(显示无效):IFS(AND([@洞口类型]="矩形", OR(ISNUMBER(SEARCH("门", [@构件类型])), ISNUMBER(SEARCH("梁", [@构件类型]))), [@洞口宽mm] + [@洞口高mm]*2,AND([@洞口类型]="矩形", OR(ISNUMBER(SEARCH("窗", [@构件类型])), ISNUMBER(SEARCH("柱", [@构件类型]))), ([@洞口宽mm] + [@洞口高mm])*2, AND([@洞口类型]="拱形", ISNUMBER(SEARCH("门", [@构件类型]))),([@洞口高mm] - [@拱高mm])*2 + 3.14*[@洞口宽mm]/2,AND([@洞口类型]="拱形", ISNUMBER(SEARCH("窗", [@构件类型]))),[@洞口宽mm] + ([@洞口高mm] - [@拱高mm])*2 + 3.14*[@洞口宽mm]/2,AND([@洞口类型]="圆形", OR(ISNUMBER(SEARCH("窗", [@构件类型])), ISNUMBER(SEARCH("柱", [@构件类型]))),3.14*[@洞口宽mm],AND([@洞口类型]="圆形", ISNUMBER(SEARCH("门", [@构件类型]))),"",AND([@洞口类型]="椭圆形", ISNUMBER(SEARCH("窗", [@构件类型]))),2*3.14*SQRT(([@洞口宽mm]^2 + [@洞口高mm]^2)/2),AND([@洞口类型]="椭圆形", ISNUMBER(SEARCH("门", [@构件类型]))),"",AND([@洞口类型]="菱形", ISNUMBER(SEARCH("窗", [@构件类型]))),4*SQRT(([@洞口宽mm]/2)^2 + ([@洞口高mm]/2)^2),AND([@洞口类型]="菱形", ISNUMBER(SEARCH("门", [@构件类型]))),"",OR([@洞口类型]="异形", [@洞口类型]="其他"),"",TRUE,"")

公式二(显示无效):=IFS(

AND([@洞口类型]="矩形", OR(ISNUMBER(SEARCH("门", [@构件类型])), ISNUMBER(SEARCH("梁", [@构件类型]))),

[@洞口宽mm] + [@洞口高mm]*2,

AND([@洞口类型]="矩形", OR(ISNUMBER(SEARCH("窗", [@构件类型])), ISNUMBER(SEARCH("柱", [@构件类型]))),

([@洞口宽mm] + [@洞口高mm])*2,

AND([@洞口类型]="拱形", ISNUMBER(SEARCH("门", [@构件类型]))),

([@洞口高mm] - [@拱高mm])*2 + PI()*[@洞口宽mm]/2,

AND([@洞口类型]="拱形", ISNUMBER(SEARCH("窗", [@构件类型]))),

[@洞口宽mm] + ([@洞口高mm] - [@拱高mm])*2 + PI()*[@洞口宽mm]/2,

AND([@洞口类型]="圆形", OR(ISNUMBER(SEARCH("窗", [@构件类型])), ISNUMBER(SEARCH("柱", [@构件类型]))),

PI()*[@洞口宽mm],

AND([@洞口类型]="圆形", ISNUMBER(SEARCH("门", [@构件类型]))),

"",

AND([@洞口类型]="椭圆形", ISNUMBER(SEARCH("窗", [@构件类型]))),

2*PI()*SQRT(([@洞口宽mm]^2 + [@洞口高mm]^2)/2),

AND([@洞口类型]="椭圆形", ISNUMBER(SEARCH("门", [@构件类型]))),

"",

AND([@洞口类型]="菱形", ISNUMBER(SEARCH("窗", [@构件类型]))),

4*SQRT(([@洞口宽mm]/2)^2 + ([@洞口高mm]/2)^2),

AND([@洞口类型]="菱形", ISNUMBER(SEARCH("门", [@构件类型]))),

"",

OR([@洞口类型]="异形", [@洞口类型]="其他"),

"",

TRUE,

"" // 默认情况

)

德里国家首都辖区
浏览 644
收藏
点赞
分享
+1
7
+1
全部评论 7
 
公式太长了,可能都无法调试 可以换一个思路,将形状与构建类型 自动转换成编码 再判断编码 就OK了...以下图片仅供参考..思路
· 黑龙江省
回复
陈波

@金山办公

是的,按这个思路,把原本超长的公式拆分成2个部分,从而减少单个公式的长度
· 广东省
回复
 
目前能优化的点,返回同一个结果的时候 就不需要一个一个判断了
· 广东省
回复
 
多维表不熟悉啊
· 广东省
回复