我有一个excel表格,在每个单元格上应用的公式很少,现在我想将它们转换成一个基于web的应用程序。
一切似乎都很好,但很少有单元格有相互依赖的公式。
前任,
输入单元:
费用: 9790
拨款: 3%
非派位: 97%
细胞公式:
单元-1:(单元-3*分配)= (10000 * 3%)
结果:300美元
单元-2:(非分配*单元-3)= (10000 * 97%)
结果:9700美元
单元-3:(成本+单元-1-损害费)= (9790 +300-90)
结果:10000美元
那么,在这里,我如何计算依赖的细胞值,因为细胞-1依赖于细胞-3,细胞-3依赖于细胞-1?
编辑:
损害费:(总费用*分配)
费用总额:根据Cell-3 (如if Cell-3 <= 10000,然后3000等)计算,
发布于 2014-10-29 11:08:39
您没有标记JavaScript,但是这里有一个客户端JS解决方案,它可以很容易地在c#或asp.net中实现:
var Cost = 9790,
Allocation = 0.03,
Fee = 90,
C1 = 0,
C3 = 0,
C1iterations = 100,
C3iterations = 100;
function Cell1() {
if(--C1iterations) {
C1 = Cell3() * Allocation;
}
else {
C1iterations = 100;
}
return C1;
}
function Cell3() {
if(--C3iterations) {
C3 = Cost + Cell1() - Fee;
}
else {
C3iterations = 100;
}
return C3;
}
document.body.innerHTML= 'Cell1: '+Cell1()+'<br>Cell3: '+Cell3();
您可以告诉Excel允许循环引用,在这种情况下,它默认为100个迭代。这段代码重复了这个功能,所以你不必做代数运算。
为了演示目的,所有变量都是全局的,但是可以通过使用闭包轻松地使它们成为本地变量。
发布于 2014-10-29 05:49:53
我不知道excel能做到这样的事情,但也是这样的。
事实证明,这是学校代数中的一个简单的节选:
zx那么你就有了公式:
x = z*Allocation和
z = Cost + x - Fee所以你可以把后面的插入到第一个,然后得到:
x = (Cost + x - Fee) * Allocation将所有x放在左侧:
(1-Allocation)*x = (Cost - Fee) * Allocation分水岭
x = (Cost - Fee) * Allocation / (1-Allocation)没有插入z:
z = Cost - Fee + (Cost - Fee) * Allocation / (1-Allocation)(你也可以简化最后一个)
让我们来看看Cost = 9790,Fee = 90和Allocation = 0.03
x = 9700 * 0.03 / 0.97 = 300
z = 9700 + 300 = 10000似乎是对的。
备注
很明显,用一些常用的编程语言(比如C# )来编写自动转换工具要困难得多,因为你需要教你的程序如何做基本代数;) --但是如果你只有几个单元格,并且只想翻译它,你可以手动完成。
https://stackoverflow.com/questions/26623184
复制相似问题