我有以下类型的数据:
+---------------+-------------------------+----
| time | item | line index number
+---------------+-------------------------+----
| 05:00:00 | | 1
| 05:00:01 | MatchingValue | 2
| 05:15:00 | | 3
| 06:00:00 | B | 4
| 06:01:00 | | 5
| 06:45:00 | | 6
| 07:00:00 | MatchingValue | 7
| 07:15:00 | | 8
| 08:00:00 | | 9
| 09:00:00 | | 10
+---------------+-------------------------+
我要做的是使用item == "MatchingValue"
在匹配行之前和之后提取多行,以及匹配的行本身。那些返回的多行是在item == "MatchingValue"
例如,如果我在第二列中搜索"MatchingValue"
,我想得到第1,2,3和6,7,8行的结果。
我知道可以通过使用数组公式(例如索引和匹配)同时返回第2,7行。但我真的不知道如何使用数组公式来解决我自己的问题。
我感谢任何帮助。
答案 0 :(得分:1)
最简单的方法是添加辅助列并过滤数据,或者只使用数据透视表来获取所需的数据。
帮助栏中的公式:=or(b2="MatchingValue",countifs(b:b,MatchingValue,A:A,">=" & A2-1/(24*4),A:A,"<=" & A2+1/(24*4))>0)
当然,您也可以编写数组公式来收集新范围内的数据,但考虑到您已经很复杂的标准和可变数量的结果,这将是一个非常复杂的公式。