我正在手动扫描一些包含不同数字的 PDF 报告,这些数字通常同时具有小数和千位分隔符。大多数情况下,逗号和千位分隔符与我的本地设置相同(,= 小数,.= 千位,;= 参数分隔符)。不幸的是,Excel 函数不喜欢输入包含千位分隔符的数字。
问题
我从 PDF 复制了值,但我不想让它们在单元格中显示为复制的,而是先对其进行操作。我不希望原始数字出现在任何单元格中。但当我复制一些值并尝试将它们提供给函数时,例如
=AVERAGE(1.234.456.789;3.000.000.000)
我收到错误
There is a problem with this formula.
Not trying to type a formula?
When the first character is an equal (=) or minus (-) sign, Excel thinks it's a formula
· you type: =1+1, cell shows: 2
To get around this type an apostrophe (') first:
· you type '=1+1, cell shows =1+1
目前,我不得不手动移除千位分隔符,以获得
=AVERAGE(1234456789;3000000000) 才能使公式起作用。
有没有比较省力的办法呢?
解决方案要求
编辑:我不想要像这样的解决方案
=AVERAGE(SUBSTITUTE("123.456.789";".";"");SUBSTITUTE("3.000.000.000";".";""))
因为需要输入更多内容;我宁愿有一个解决方案,要么
- 包括更改 Excel 设置,使所有 Excel 函数不再抱怨千位分隔符, 或者
- 作为第二好的解决方案,可以编写 VBA 函数,使其分别适用于每个函数(在这种情况下,我只需要一个 AVERAGE 的工作示例,就可以自己实现其余部分),例如
=MyNiceAverage(1.234.456.789;3.000.000.000)
我无法做到这一点,因为即使是 VBA 函数也会对上述格式的参数提出异议。我可以实现一个解决方案,将参数作为字符串传递,例如
=MyNotSoNiceAverage("1.234.456.789";"3.000.000.000")
这也是一个令人满意的选择,因为我要粘贴大量的数字,而且我不愿意将每个数字放在自己的引号中。
感谢您的帮助!
答案1
您可以使用SUBSTITUTE
删除复制值中的句点。
像这样:
=AVERAGE(SUBSTITUTE("123.456.789";".";"");SUBSTITUTE("3.000.000.000";".";""))
答案2
答案3
如果有 Office 365:
=AVERAGE(--SUBSTITUTE({"1.234.456.789","3.000.000.000"},".",""))
否则你可能想通过数组输入CtrlShiftEnter
另一方面,人们也可以仅仅SUM
和划分:
=SUM("1.234.456.789","3.000.000.000")/2