使用Excel公式读取单元格对应的日期

使用Excel公式读取单元格对应的日期,excel,excel-formula,Excel,Excel Formula,请看下面我日程安排的截图 我需要一个公式,用每行最后一个(最右边的)“x”对应的日期填充END_DATE列 是否有方法读取行中最右边的“x”,并在单元格中填充该“x”上方的日期 非常感谢您的帮助 谢谢 PJ根据@Dan非常正确的反馈进行更新 您可以使用数组/CSE公式: =INDEX($E$4:$K$4, 1, MAX(IF(E5:K5="X",COLUMN(E5:K5)-(COLUMN(E5)-1)))) 使用Ctrl+Shift+Enter输入。这将找到包含X的最大列号,并从中减去3(假

请看下面我日程安排的截图

我需要一个公式,用每行最后一个(最右边的)“x”对应的日期填充END_DATE列

是否有方法读取行中最右边的“x”,并在单元格中填充该“x”上方的日期

非常感谢您的帮助

谢谢


PJ

根据@Dan非常正确的反馈进行更新

您可以使用数组/CSE公式:

=INDEX($E$4:$K$4, 1, MAX(IF(E5:K5="X",COLUMN(E5:K5)-(COLUMN(E5)-1))))
使用Ctrl+Shift+Enter输入。这将找到包含
X
的最大列号,并从中减去3(假设我们正在搜索的范围是
D2:J2
,否则必须调整
-3
以进行补偿。然后使用
索引()
查找该列的相应值


作为数组或CSE公式的替代方法,您可以使用在聚合函数中执行类似数组操作的聚合。调整引用以满足您的需要,但由于聚合执行类似数组的计算,因此避免在聚合中使用完整的行/列引用

此解决方案使用索引和聚合的组合

=INDEX($4:$4,AGGREGATE(14,6,COLUMN($E5:$K5)/($E5:$K5="x"),1))
我在下面示例中显示的黄色单元格中使用了上述公式


应为
A2:A8
,以便针对特定行(op每行有多个x)。你还必须减去第一个x-1的列号。你的方法有效,因为第一个x在第1行,所以你需要减去0,但OP没有从第1列开始。哦,我明白了。我误读了这个问题。这应该抓住范围的最大列。但它只是一行。@Dan我明白你的意思。但我不知道怎么说w修改公式以反映这一点LOL@user2127447我刚刚更新了答案,以反映Dan的反馈和您的问题,现在我“了解”了。@jnevil完全正确:)我会将硬编码的3改为指向第一个单元格,尽管可能是这样,而不是
-3
-COLUMN(D2)+1
。这样,它就能够在床单周围移动。嗨。你的公式给了我实际结束日期后的第四个日期。。就像它找到了x,然后选择了x:=索引($E$4:$N$4,聚合(14,6,COLUMN($E6:$N6)/($E6:$N6=“x”),1)之后的第四个单元格。您将其从$4:$4更改为$E$4:$N$4。请用$4:$4再试一次。