【问题标题】:Index/Match Multiple Criteria, Perform Calculation for Each Match索引/匹配多个标准,为每个匹配执行计算
【发布时间】: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 个条目中的每一个是否等于这些值中的任何一个吗?抱歉 - 我认为这可能超出了理论上的讨论范围,对于浪费您的时间,我深表歉意,但没有看到工作簿,我不确定是否能提供帮助。

标签: excel indexing match


【解决方案1】:

我在大多数 cmets 之前进行了猜测,并提出以下建议,主要是为了以防它提供任何想法或有助于更详细地指定需求。这是“两步”,因为平均公式与每列的公式是分开的,所以我很欣赏可能不是所需要的。

假设 S 和 D 是 Sheet2 ColumnsA:B 中的标记数据。 假设 Row1 数据行在 ColumnA 中标记。 假设日期不是字符串(例如,1 月实际上是 1 月 1 日)并且差异以天为单位,并且总是正数,等等。

=(B$1-CHOOSE(COLUMN(),Sheet2!$A1,Sheet2!$A2,Sheet2!$A3,Sheet2!$A4))/CHOOSE(COLUMN(),Sheet2!$B1,Sheet2!$B2,Sheet2!$B3,Sheet2!$B4)  

在 Row2 中适合,如果有四个数据列,在 F2 中并向下复制以适合:

=AVERAGE(B2:E2)

【讨论】:

  • 谢谢。我在考虑 Choose() 函数,但这最多只能处理 254 行数据,对吗?
  • 是的,但是日期是一对多的关系。
  • 每个日期有多个数据点。我可以有多个 1 月 1 日、多个 1 月 2 日等。
猜你喜欢
  • 2016-05-15
  • 2019-06-18
  • 2016-06-29
  • 2019-12-28
  • 1970-01-01
  • 1970-01-01
  • 2015-08-07
  • 2020-04-24
  • 2020-06-08
相关资源
最近更新 更多