如何对表格列中每个单元格的值范围进行计算

如何对表格列中每个单元格的值范围进行计算

我有一张大表,其中第一列中的某行(而不仅仅是单个值)有一个范围,例如

在此处输入图片描述

我想对所有数据元素进行计算,但由于第一列中并不总是只有一个数字,有时还会有一个范围,如上例所示,所以我不知道如何正确地执行此操作。

我希望结果列中的结果是每行的值乘以一个因子,例如。如果列中的输入值是一个范围,则0.3结果列应显示另一个范围作为结果;如果相应的值只是 1 个值,则仅显示单个结果,例如 Param 1Param 1在此处输入图片描述

答案1

显示的样本数据可以视为位于 A1:E4 中,行和列标题(标题)位于第 1 行和 A 列,依此类推。在这种情况下,单元格 E4(示例中的最后一行)的公式将是:

=IFERROR(VALUE(B4)*0.3,
         VALUE(LEFT(B4,FIND("-",B4)-1))*0.3&"-"&VALUE(RIGHT(B4,LEN(B4)-FIND("-",B4)))*0.3)

中的第一个计算用于指示目标单元格中​​是否存在单个值。如果失败,则第二个计算将构成范围的字符串拆分为“-”左侧的部分和“-”右侧的部分。它使用IFERROR(),这次将每个字符串转换为数字,然后将每个字符串乘以“.3”,最后形成结果左侧值的字符串VALUE()VALUE()因子,一个新的“-”,以及由此产生的正确值因素。

它确实依赖于在“范围”单元格中一致使用“-”来分隔两个组件,尽管人们可以通过付出很多努力来处理几种可能性。替代输入形式可能有“空格-破折号-空格”或类似的混乱,但通过在包装器TRIM()内的字符串片段周围插入一个函数VALUE()来去除前导或尾随空格,可以更好地处理这些问题。可能会发现其他变体,人们可能会找到各种巧妙的方法来处理它们。

不过,这很简单,分离、操作和重新生成字符串。所以你唯一真正的麻烦就是处理人们输入的错误数据(而且会有很多)。不过,如果数据来自某个由程序编写的数据源,而不是数据输入,那就不是问题了!

相关内容