我输入了很多行数据。有时我会在 A 列中输入净值,有时我会在 C 列中输入毛额。 净额 + 增值税 = 毛额。在所有情况下,我都希望公式自动为我计算缺失的数字。
我有三列(ABC(A 列表示净额,B 列表示名义增值税,C 列表示毛额。我在 B 中有一个公式,如果 A 增值税,或者如果 B 增值税否则为空。
目前,如果我在 A 中输入任何东西,则计算增值税,C 为空:
A B C
100 20
同样,如果我在 C 中输入任何东西,增值税是计算的,但 A 是空白的:
A B C
20 120
我想要的在下面,无论是给出的 A,还是 C。
A B C
100 20 120
我正在尝试计算给定的总数字的净值,以及单行上给定的净数字的总值。
请注意,B 列是受保护的,我有一个公式可以自动计算增值税,无论数字是先输入 C,还是先输入 A:
=IF(E2>0,E2*VATRATE,IF(G2>0,G2-(G2/(1+VATRATE)),""))
理想情况下,使用 VBA,如果 A 给定,则 cal C,如果 C 给定 calc A。
您根本不需要VBA。使用以下公式:
- A2
=IF(NOT(ISFORMULA(C2)),C2-B2,0)
净值 - B2 中的增值税
=IF(NOT(ISFORMULA(A2)),A2*VATRATE,IF(NOT(ISFORMULA(C2)),C2-(C2/(1+VATRATE)),0))
- C2
=A2+B2
中的毛额
诀窍是确定是否手动输入了数字。知道这一点后,可以使用 if 语句来避免循环引用。
根据需要复制任意数量的行。