让 Excel 在水平单元格内使用单元格内的堆叠数字进行乘法运算

让 Excel 在水平单元格内使用单元格内的堆叠数字进行乘法运算

在此处输入图片描述

我想让 Excel 自动将小时费率乘以人员 A 和 B 到 Z 所完成的小时数以得出 D 列总金额,但我的数据格式是这样的。

我怎样才能让 Excel 完成此操作而无需更改格式并且无需使用计算器?

答案1

解决方法是,在输入小时费率 ($) 和小时费率 ($) 数据时,在第一行数据后添加一个空格“ ”。
例如,“930 ”和“3.5 ”,您可以尝试这样做:

=LEFT(B2,FIND(" ",B2)-1)*LEFT(C2,FIND(" ",C2)-1)+RIGHT(B2,FIND(" ",B2)-1)*RIGHT(C2,FIND(" ",C2)-1)

在此处输入图片描述

另外,在Excel中,建议一个单元格中只放置一个数据,极其简单。 在此处输入图片描述



更新:
无需做任何其他事情,试试这个:

=LEFT(B15,FIND(CHAR(10),B15)-1)*LEFT(C15,FIND(CHAR(10),C15)-1)+RIGHT(B15,FIND(CHAR(10),B15)-1)*RIGHT(C15,FIND(CHAR(10),C15)-1)

在此处输入图片描述

答案2

如果看起来像这样,则表示它是文本格式。第一步应该是将其处理为合理的数据格式,每个单元格一个数字。

您可以使用 value 和 len 来实现这一点,但是这会非常扭曲并且不是最佳的时间利用。

如果是一次性清理,请将原始值放入 Word 中,去掉“”然后就可以将其放回去了。如果它像这样经常出现在你面前,我建议你需要使用 VBA。

答案3

您可以忽略 A 列,因为它是您想要的 B 列和 C 列的乘积。

使用以下方法将这些列拆分为一个数组FILTERXML(拆分 B 列的示例)
=FILTERXML("<t><s>" & SUBSTITUTE(B2,CHAR(10),"</s><s>") & "</s></t>","//s"):。

然后您可以使用SUMPRODUCT结果:

=SUMPRODUCT(FILTERXML("<t><s>" & SUBSTITUTE(B2,CHAR(10),"</s><s>") & "</s></t>","//s"),FILTERXML("<t><s>" & SUBSTITUTE(C2,CHAR(10),"</s><s>") & "</s></t>","//s"))  

在此处输入图片描述

相关内容