我正在尝试将数字的一位数字从一个工作簿转移到另一个工作簿的一个单元格中。
例子:
Worksheet 1: 1,234.56
Worksheet 2: A1 A2 A3 A4 A5 A6
1 2 3 4 5 6
这些是我一直在使用的公式,但最后一位数字的公式不正确。
A1 公式:这个有效
=IF('Worksheet 1'!D7>9999999.99,MID('Worksheet 1'!D7,7,1),
IF('Worksheet 1'!D7>999999.99,MID('Worksheet 1'!D7,6,1),
IF('Worksheet 1'!D7>99999.99,MID('Worksheet 1'!D7,5,1),
IF('Worksheet 1'!D7>9999.99,MID('Worksheet 1'!D7,4,1),
IF('Worksheet 1'!D7>999.99,MID('Worksheet 1'!D7,3,1),
IF('Worksheet 1'!D7>99.99,MID('Worksheet 1'!D7,2,1),
IF('Worksheet 1'!D7>9.99,MID('Worksheet 1'!D7,1,1),"")))))))
A6 电池:这不起作用:
=IF(MID(RIGHT('Worksheet 1'!D7,2),1,1)=".",MID(RIGHT('Worksheet 1'!D7,2),1,1),
IF(MID(RIGHT('Worksheet 1'!D7,2),1,2)=".",RIGHT('Worksheet 1'!D7,1),"0"))
答案1
我不确定我是否理解为什么你有如此庞大的 if-else 公式,以及如何在每个单元格(A1、A2 等)中使用它。
那么,为什么不对要删除的每个数字使用更简单的公式呢?
类似下面的方法应该对你有用:
对于从第 1 行开始的同一列中的每个单元格,使用以下公式:
=LEFT(MOD('Worksheet 1'!$D$7,POWER(10,9-ROW()))/POWER(10,9-ROW()-1))
即,同一列中的所有单元格都有相同的公式,因此,您只需向下填充即可。
一些解释:
POWER(10,9-ROW())
正在计算基于 10 的幂的除数。
如果你从第 1 行开始,那么随着你沿列向下移动,功率9-ROW()
将给出 8、7、6、5、...。
因此,当您沿着列向下移动时,您将逐个除以 10 的较小幂,以提取小数点位置的数字。
..
要从 1 以外的行开始,或提取从 10,000,000 位以外的位置开始的数字,只需进行更改,9
使 X-ROW()
为您提供您想要开始的第一个十的幂。
..
还要注意,除了LEFT
上面的“ ”,您还可以使用“ ROUNDDOWN
”将小数点后零位替换为“ ”(即像这样)ROUNDDOWN(MOD.../POWER..., 0)
。