问题

问题

我正在手动扫描一些包含不同数字的 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";".";""))

因为需要输入更多内容;我宁愿有一个解决方案,要么

  1. 包括更改 Excel 设置,使所有 Excel 函数不再抱怨千位分隔符, 或者
  2. 作为第二好的解决方案,可以编写 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

你 之后Copy, 就 可以 了Paste using Text Import Wizard.

这将显示其中Text Import WizardStep 3 --> Advanced您可以指定在复制的数据中使用的Decimal和分隔符。Thousands

这会将值适当地转换为带有您自己的分隔符的数字。

Paste如果单击选项卡上按钮的下半部分时没有看到该项目可用Home,请自定义Quick Access Toolbar以将其添加到那里。如果您选择Choose Commands All Commands

在此处输入图片描述

答案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

相关内容