【问题标题】:Index match, need range to change based on today()索引匹配,需要根据今天改变范围()
【发布时间】:2023-04-01 08:07:01
【问题描述】:

我有一个需要从中读取值的流程图。以下是 sheet1 的设置方式:

equip | 11/1/2013 | 11/2/2013

car1  | travel    | return home

car2  |maintenance| 

car3  | travel    | travel

基本上,设备在第一列冻结,日期在顶行,因此日期下的每一列在第一列中都有该设备的旅行或维护。这是右侧时间线的时间表。

我需要做的是在每一行中为一辆车找到单词,但前提是它是在未来。
示例:我需要为 car1 找到下一次换油,但不关心过去的换油,或者在我寻找的第一次换油之后的远期换油。

这是我在 sheet2 中使用的索引匹配,效果几乎足够好。

IF(INDEX(SHEET1!3:3,MATCH("oilchange"&"*",SHEET1!5:5,0))>=TODAY(),
INDEX(SHEET1!3:3,MATCH("oil change"&"*",SHEET1!5:5,0)),"not scheduled")

此代码适用于过去没有更换机油的任何汽车。过去换油的汽车将返回过去换油的日期,而不是我正在寻找的下一次即将换油的日期。

有什么想法吗?提前感谢您帮助我。

【问题讨论】:

    标签: excel indexing range match


    【解决方案1】:

    假设您使用的是 Excel 2007 或更高版本,请尝试此公式

    =IFERROR(INDEX(SHEET1!3:3,MATCH(1,INDEX((LEFT(SHEET1!5:5,10)="oil change")*(SHEET1!3:3>=TODAY()),0),0)),"not scheduled")

    以所需日期格式格式化结果单元格

    当两件事都成立时,找到第一个匹配项,第 5 行的值以“换油”开头.....并且第 3 行的日期是 >= 今天......并且INDEX 返回相应的日期。

    如果没有匹配,MATCH 函数会返回错误,并且您会得到“未安排”

    【讨论】:

    • 效果很好,我在寻找旧的“换油”结果时遇到的问题得到了解决。谢谢你帮助我,也非常感谢你解释你的公式。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2022-06-15
    • 2016-01-14
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2019-04-11
    相关资源
    最近更新 更多