【发布时间】:2014-07-02 14:40:06
【问题描述】:
我在一个表中有两列,分别称为 S 和 D,其中 S 是日期,D 是持续时间。 例如:
'S' Column
January
February
March
April
'D' Column
60
30
45
30
在单独的工作表上,假设第 1 行包含一系列日期(可变,取决于用户菜单选择)。
第 2 行需要以下计算:
[(x - s1)/d1 + (x-s2)/d2 + ... + (x-sn)/dn] / n
...其中“x”是第 1 行的任何日期。
只有当多个条件匹配时才会进行计算。
我最初的尝试涉及创建一个单独的表,但我认为这可以在第 2 行中的一个单元格公式中完成。考虑到 d1、d2,我认为 sum(index(match)) 类型在这里不起作用, ..., dn 是具有不同值的分母。
这是一个尝试示例:
=SUM((SelectedDate-INDEX(Table[StartDates],MATCH(Criteria1&Criteria2,Range1&Range2,0))/INDEX(Table[Durations],MATCH(Criteria1&Criteria2,Range1&Range2,0))))
请注意,我可以分两步完成此操作,这可能很重要。首先,我创建一个对每一行进行计算的表。然后,我参考了这张表。如果我可以消除对“计算表”的需求而使用数组类型的公式,那就太好了。
【问题讨论】:
-
"只有当多个条件匹配时才会进行计算。"我们需要知道这些标准吗?或者您只是想要一个解决问题的方法,然后您将其合并到例如进一步的 IF 声明?此外,您的示例日期都只是几个月(即没有天/年) - 对于您概述的减法,这是如何解决的?
-
感谢您的快速回复。对于你的第一个问题,是的。对于第二个问题,不,它们是特定日期。我已经编辑了一个将公式转换为语法的示例尝试。
-
谢谢。我知道很多人对结构化引用赞不绝口,但我个人不能遵守它们,尤其是在涉及复杂的公式工作时,所以很遗憾我不得不通过。问候。
-
我对其他选项很灵活(非 VBA)。
-
对不起,但现在我对你的语法感到困惑。您建议的公式将标准与范围相匹配:不应该反过来吗?而且恐怕仍然不清楚这些“通用”标准采取什么形式。如果我为了论证而假设 Criteria1 是数组 {"Red","Yellow","Green"},也就是说要测试该范围中的 300 个条目中的每一个是否等于这些值中的任何一个吗?抱歉 - 我认为这可能超出了理论上的讨论范围,对于浪费您的时间,我深表歉意,但没有看到工作簿,我不确定是否能提供帮助。