仅返回 1 个重复值(基于是否返回最低行#重复值)

问题描述 投票:0回答:1

标题可能会令人困惑。长话短说,我引用sheet1 中特定列中的日期与sheet2 中日历上的日期进行比较。这是从sheet1返回相关信息。目前的公式如下: =IF(COUNTIF("SHEET1"!J:J,A4)=1,INDEX('SHEET1'!G:G,MATCH(A4,"SHEET1"!J:J,0)),"")

sheet1 的日期位于 J 列中,该单元格需要显示sheet1 列 G 中的相应数据。 我的问题源于重复的日期。 我在sheet1中添加了一个隐藏行#,从'sheet1'A2开始。 如何更改此公式以仅返回最低行#中的匹配数据?

我使用的是Excel 2016。截图例如:

(https://i.stack.imgur.com/T73nv.png)

(https://i.stack.imgur.com/Gmaw2.png)

这是我希望实现的示例:

表1:

A 栏 B 栏 C 栏
1 2024 年 1 月 1 日 数据1
2 2024 年 1 月 1 日 数据2
3 2024 年 1 月 2 日 数据3
4 2024 年 1 月 2 日 数据4

表2:

2024 年 1 月 1 日 2024 年 1 月 2 日
数据1 数据3
数据2 数据4
date excel-formula duplicates calendar excel-2016
1个回答
0
投票

2016年,可以使用非精确匹配来得到最终结果。这是通过 Excel 在范围内搜索下一个较大值,然后回滚到上一个值来实现的。需要注意的是,您的范围必须按升序排序,这似乎是从您的屏幕截图中看出的。

这会修改公式的错误条件,以便在存在超过 1 个实例时搜索不精确的条件,但要进行测试以确认其按预期工作。同样,重要性来自于数据的排序方式。

=IF(COUNTIF("SHEET1"!J:J,A4)=1,INDEX('SHEET1'!G:G,MATCH(A4,"SHEET1"!J:J,0)),INDEX('SHEET1'!G:G,MATCH(A4,"SHEET1"!J:J,1))

您还可以避免使用 COUNTIF 来进一步简化公式:

INDEX('SHEET1'!G:G,MATCH(A4,"SHEET1"!J:J,1)

如果您使用 365,您可以使用

INDEX/MATCH
来定义搜索顺序,而不是使用
XLOOKUP
,这似乎会简化您的问题。

XLOOKUP 类似于您在定义搜索数组和返回数组时使用索引/匹配的方式,但它与您还可以定义“搜索模式”的其他查找不同,并且可以使用 -1 来获得它从最后到第一个搜索。这将返回该日期的最后一场比赛。如果没有匹配,它也会返回 0,您可以将其更改为您想要的任何结果。

=XLOOKUP( A4, J:J, G:G, 0, 0 , -1)

© www.soinside.com 2019 - 2024. All rights reserved.