我正在寻找一种缩短公式的方法。我是Excel的新手,不知道如何缩短公式,我已经尝试了几次,但总是出错。我相信对于更有经验的人来说,这将是一个微不足道的问题。
我希望有人能帮助我,我感谢任何回应。
=SUM(IF((ISNUMBER(SEARCH("Bench",$P$9:$U$11)))+(ISNUMBER(SEARCH("Press",$P$9:$U$11)));V9:V11*$W$9:$W$11,0))+SUM(IF((ISNUMBER(SEARCH("Bench",$P$19:$U$21)))+(ISNUMBER(SEARCH("Press ";$P$19:$U$21)));V19:V21*$W$19:$W$21;0))+SUM(IF((ISNUMBER(SEARCH("Bench",$P$29:$U$31)))+(ISNUMBER(SEARCH("Press",$P$29:$U$31)));V29:V31*$W$29:$W$31,0))+SUM(IF( (ISNUMBER(SEARCH("Bench",$P$39:$U$41)))+(ISNUMBER(SEARCH("Press",$P$39:$U$41)));V39:V41*$W$39:$ W$41;0))
1条答案
按热度按时间qgelzfjb1#
我不认为这里有任何“简单”的节省。我所做的是我“分解”一个非常复杂的公式,以帮助我更好地形象化逻辑。在这个例子中:
我没有改变任何东西,除了格式化它的方式,让我看到的模式...我想工作的模式,而不是细节。
我可以看到这个公式在4个6r x 3c的范围中搜索“Bench”或“Press”的任何示例。如果至少有一个示例,则将2个3单元格数组相乘并对结果求和,否则为该范围返回零。
你有O365,所以你 * 可以 * 在你的名称管理器中创建一个命名的LAMBDA()函数。例如,你可以在名称管理器中创建一个自定义的Excel函数,如下所示:
=snorlaxFunction( "Bench", "Press", $P$39:$U$41 )
这将4个术语中的每一个简化为:
您可以进一步将整个SUM(IF())封装为一个函数:
=snorlaxFunction( "Bench", "Press", $P$39:$U$41, V39:V41, $W$39:$W$41 )
在这种情况下,您的“整体”公式变为:
老实说,如果是我的话......我想不出有什么简单的方法来简化逻辑,也没有重复项可以作为LET的候选项()函数。因此,我将保留公式的原样,但使用
alt
enters
以大纲格式表示公式,就像我上面所做的那样。我不会完成创建名为LAMBDA的工作除非我打算在电子表格中多次重复使用这个公式。注意事项
我注意到的一件事是,您的符号在
comma
分隔和semicolon
分隔文本之间漂移了很多,正如您在上面看到的。我会坚持您配置的区域设置,并保持100%一致,只使用**逗号或分号。