帮我优化以下公式 =IFERROR(VLOOKUP(LOWER(AL$8),INDIRECT("B"&MATCH(":BEGIN",$B:$B,0)+$AK10*(COUNTA($B:$B)/IF(COUNTIF($B:$B,":BEGIN")=COUNTIF($B:$B,":END"),COUNTIF($B:$B,":BEGIN"),"原始数据错误"))-(COUNTA($B:$B)/IF(COUNTIF($B:$B,":BEGIN")=COUNTIF($B:$B,":END"),COUNTIF($B:$B,":BEGIN"),"原始数据错误"))&":C"&MATCH(":END",$B:$B,0)+$AK10*(COUNTA($B:$B)/IF(COUNTIF($B:$B,":BEGIN")=COUNTIF($B:$B,":END"),COUNTIF($B:$B,":BEGIN"),"原始数据错误"))),2,FALSE),"无数据")
时间: 2023-06-18 07:06:39 浏览: 112
公式解析,不太完美,希望各位给完善
可以将重复的部分提取出来,使公式更易读和管理。例如,可以使用以下公式:
```
=IFERROR(
VLOOKUP(
LOWER(AL$8),
INDIRECT(
"B" & StartRow
& ":C" & EndRow
),
2,
FALSE
),
"无数据"
)
```
其中,`StartRow` 和 `EndRow` 分别是开始和结束单元格的行号。可以使用以下公式来计算它们:
```
StartRow = MATCH(":BEGIN", $B:$B, 0)
+ $AK10 * (COUNTA($B:$B) / IfError(CountIf($B:$B, ":BEGIN"), "原始数据错误"))
- (COUNTA($B:$B) / IfError(CountIf($B:$B, ":BEGIN"), "原始数据错误"))
EndRow = MATCH(":END", $B:$B, 0)
+ $AK10 * (COUNTA($B:$B) / IfError(CountIf($B:$B, ":BEGIN"), "原始数据错误"))
```
这样,公式就变得更容易读懂和维护了。
阅读全文