excel - Excel:在列中查找值,然后在该行中搜索日期值,将值返回到左侧
问题描述
我正在寻找一个公式(或代码),它在列中找到一个值,然后在日期之间的该行中找到该值,当多个日期返回最大值时,然后将值返回到左侧。我不能使用辅助列。我尝试了几个嵌套索引/匹配公式,但没有成功......
对于以下示例:
参数 1:在 A 列中查找Fork
参数 2:在该行 (4) 中,查找介于 2018 年 1 月 1 日和 18 年 1 月 5 日之间的日期
参数3:当在该日期范围内找到多个日期时,返回最大值
参数 4:返回该日期左侧列的值
结果:D 列中为黑色。
A B C D E F G
1 ID Colour 1Date 1 Colour 2Date 2 Colour 3 Date 3
2 Plate Green 1-Jan-18 Red 23-Jan-18 L blue 14-Feb-18
3 Bowl Blue 6-Jan-18 Brown 28-Jan-18 Yellow/Green 19-Feb-18
4 Fork Yellow 2-Jan-18 Black 4-Jan-18 Turquoise 24-Feb-18
5 Knive Purple 16-Jan-18 White 7-Feb-18 Maroon 1-Mar-18
6 Spoon Pink 21-Jan-18 Orange 12-Feb-18 L pink 6-Mar-18
我希望这是可能的!非常感谢提前。
解决方案
试试这个
其中
I10
= 要搜索的 ID
I11
= 最小日期(2018 年 1 月 1 日)
I12
= 最大日期(2018 年 1 月 5 日)
J10
==MATCH($I$10,$A$1:$A$6,0)
如果是 ID,则获取行号
=INDEX(INDEX($A$1:$G$6,$J$10,),
MATCH(
MAXIFS(INDEX($A$1:$G$6,$J$10,),
INDEX($A$1:$G$6,$J$10,),">="&$I$11,
INDEX($A$1:$G$6,$J$10,),"<="&$I$12
),
INDEX($A$1:$G$6,$J$10,),0
) - 1
)
INDEX($A$1:$G$6,$J$10,)
获取 ID 的数据行(在公式中重复多次)获取满足条件的
MAXIFS(...)
最大日期获取返回颜色的日期的列号>=
<=
MATCH(MAXIF(...), [ID data row],0)
MAXIF
INDEX( [ID data row], MATCH(MAXIF(...), [ID data row],0) - 1)
没有替代公式MAXIFS
=INDEX(INDEX($A$1:$G$6,$J$10,),
MATCH(
MAX(IFERROR(({0,0,1,0,1,0,1})*(INDEX($A$1:$G$6,$J$10,)>=$I$11)*(INDEX($A$1:$G$6,$J$10,)<=$I$12)*(INDEX($A$1:$G$6,$J$10,)),0)),
INDEX($A$1:$G$6,$J$10,),0
) - 1
)
以数组公式的形式输入(包含CtrlShiftEnter而不是仅包含Enter)
推荐阅读
- powerbi - Power BI - 使用特定 DAX 公式时,筛选不适用于子列
- javascript - 盖茨比类别 slugs 在动态类别页面中不起作用
- flutter - Flutter 何时使用 SF Pro Display 或 SF Pro Text 以及如何将它们分配给 Text 小部件?
- image-processing - 如何从知道现实世界中质心位置的图像和图像投影中获得现实世界中正方形的方位
- multi-tenant - 尝试在数据库迁移时使用 ABP 框架创建数据库
- imagemagick - 使用蒙版制作透明区域
- encryption - OpenPGP加密中的私钥存储问题
- html - Excel 函数可以识别粗体文本吗?
- azure - 我应该如何在 Azure 中为我的应用程序实施健康检查?
- python - matplotlib:为所有图形设置单个标题(不是子图)