我正在尝试使用excel公式来确定pDistance
每个Distance
的总Position
的比例(Site
)。例如,如果(总)Distance
为50且Position
为10,则总距离(pDistance
)的比例将为0.2,即任何{pDistance
的最后Site
{1}}应该始终为1.我使用的公式(=IF(B3<B2, 1, (B2/C2))
)大部分都有效,只是我有一些Position
的值为-10。
在这些情况下,Position
中的每个Site
在计算pDistance
之前都应该为其添加值10。这可以用一个公式来完成,即计算pDistance
并在必要时加10?或者最好先制作一个假列?如果要创建虚拟列,那么在满足条件之前如何使用公式来执行某些操作(例如,将Position
添加10直到达到0或新Site
为止?
答案 0 :(得分:1)
从示例数据中,我了解对于任何在B列中某处具有-10
值的网站,(B / C)
的计算需要为((B + 10) / C)
。 (虽然单元格D11
不遵循这个,但我认为它只是一个错字:))
以下公式适用于这种情况:
D2 =(SUMPRODUCT(($ A $ 2:$ A $ 22 = $ A2)*($ B $ 2:$ B $ 22 = -10))* 10 + B2)/ C2
此公式的工作原理如下:
SUMPRODUCT(($A$2:$A$22=$A2)*($B$2:$B$22=-10))
- &GT;这将返回包含A列中A2
值和B列中-10
的值的总行数:
($A$2:$A$22=$A2)
查看A2
&amp;之间的单元格中的所有值A22
,找到哪些匹配A2
。也就是说,它会找到与输入公式的行具有相同站点编号的行($B$2:$B$22=-10)
查看B2
&amp;之间的单元格中的所有值B22
,并查找哪些等于-10
。也就是说,它会查找距离值为-10
的所有行。SUMPRODUCT
找到这些重叠。因此,它计算有多少行具有正确的站点编号和距离值-10
。此值乘以10.如果没有与网站配对的-10值,则为0 * 10 = 0
。如果有一对,则为1 * 10 = 10
。
然后将该结果添加到B2
,然后除以C2
。
注意:此公式假定特定网站最多只有一个-10
值。如果有多个,那么SUMPRODUCT
将返回匹配的总数,并且计算将是错误的(但可以更新公式以纠正此问题。)
另请注意,公式指的是范围$A$2:$A$22
和$B$2:$B$22
。这些范围必须与数据中的第一个和最后一个数字条目匹配(并且不包括任何文本 - 这将打破SUMPRODUCT
公式)。处理此问题的最简单方法(如果您不希望在数据集末尾添加值时更新公式)是设置定义的范围名称并参考公式中的名称。
要应用公式,只需将其粘贴到D2
,然后将公式复制/拖动到下面的单元格中。
作为结论,我建议您创建一个“虚拟”/“帮助”列来存储(SUMPRODUCT * 10) + B2
结果,并将其用作除法计算的输入。这将有助于可视化和检查用于计算的数据。它可以隐藏,直到您想要检查值或更改公式,以防将来需求发生变化。