Excel 索引/匹配多个条件,对每个匹配执行计算

Excel 索引/匹配多个条件,对每个匹配执行计算,excel,indexing,match,Excel,Indexing,Match,我在一个表中有两列,称为S和D,其中S是日期,D是持续时间。 例如: 在单独的工作表上,假设第1行包含一系列日期(变量,取决于用户菜单选择) 第2行需要进行以下计算: [(x - s1)/d1 + (x-s2)/d2 + ... + (x-sn)/dn] / n …其中“x”是沿第1行的任意日期 只有当多个标准匹配时,才会进行计算 我最初的尝试是创建一个单独的表,但我认为这可以在第2行的单单元格公式中完成。考虑到d1、d2、…、dn是具有不同值的分母,我认为sum(index(match))类

我在一个表中有两列,称为S和D,其中S是日期,D是持续时间。 例如:

在单独的工作表上,假设第1行包含一系列日期(变量,取决于用户菜单选择)

第2行需要进行以下计算:

[(x - s1)/d1 + (x-s2)/d2 + ... + (x-sn)/dn] / n
…其中“x”是沿第1行的任意日期


只有当多个标准匹配时,才会进行计算

我最初的尝试是创建一个单独的表,但我认为这可以在第2行的单单元格公式中完成。考虑到d1、d2、…、dn是具有不同值的分母,我认为sum(index(match))类型在这里不起作用

以下是一个示例尝试:

=SUM((SelectedDate-INDEX(Table[StartDates],MATCH(Criteria1&Criteria2,Range1&Range2,0))/INDEX(Table[Durations],MATCH(Criteria1&Criteria2,Range1&Range2,0))))

可能需要注意的是,我能够以两步走的方式完成这项工作。首先,我创建一个表,对每一行进行计算。然后,我参考表格。如果我可以不需要“计算表”而使用数组类型的公式,那就太好了。

在大多数评论之前,我做了一个猜测,并提出以下建议,主要是为了提供一些想法,或者有助于更详细地指定要求。这是“两步”的,因为平均公式与每列的公式是分开的,所以我理解这可能不是所需的

假设S和D是表2列A: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)  
在第2行中选择“适合”和“如果”四个数据列,在F2中选择“适合”,并向下复制以适合:

=AVERAGE(B2:E2)

“只有当多个标准匹配时才会进行计算。”我们需要知道这些标准吗?或者,您是否只希望获得所述问题的解决方案,然后将其纳入进一步的IF声明中?此外,您的示例日期都是几个月(即没有天/年)-关于您概述的减法,这是如何解决的?感谢您的快速响应。关于你的第一个问题,是的。关于第二个问题,不,它们是具体的日期。我已经编辑了一个将公式翻译成语法的示例。谢谢。我知道很多人都喜欢结构化的引用,但我个人无法忍受,特别是当涉及到复杂的公式工作时,所以不幸的是我必须通过。您好。我可以灵活地选择其他选项(非VBA)。对不起,现在我被您的语法弄糊涂了。您建议的公式是将标准与范围相匹配的:难道不是相反吗?我恐怕还不清楚这些“通用”标准是什么形式的。如果为了论证,我假设Criteria1是数组{“Red”、“Yellow”、“Green”},这是否意味着要测试范围中300个条目中的每个条目是否等于这些值中的任何一个?抱歉-我认为这可能超出了理论讨论的范围,我为浪费您的时间表示歉意,但是没有看到工作簿,我不确定我能帮上忙。谢谢。我考虑过Choose()函数,但它最多只能处理254行数据,对吗?是的,但与日期有一对多的关系。每个日期都有多个数据点。我可以有多个1月1日,多个1月2日,等等。
=AVERAGE(B2:E2)