4

给定一个值与后续行(在同一列上)进行比较,并将范围返回到值第一次更改的行。

Example:
   A
1  cat
2  cat
3  cat
4  dog
5  cat

要返回的范围是 A1:A3。

4

2 回答 2

4

假设您在 cell 中有 cat c1,以下公式将返回第一个连续匹配范围。用ctrl+ shift+输入enter

=COUNTIF(OFFSET(A1:A5,MATCH(C1,A1:A5,0)-1,0,MATCH(TRUE,OFFSET(A1:A5,MATCH(C1,A1:A5,0),0)<>C1,0)),"cat")

如果您的数据始终从 A1 开始,并且您希望整个范围与第一个值匹配,一直到下一个值,请使用以下数组公式(使用ctrl+ shift+输入enter):

=OFFSET($A$1,0,0,MATCH(TRUE,A:A<>A1,0)-1)
于 2012-11-02T04:04:43.847 回答
1

这用作数组公式。按公式栏中的ctrl+ shift+enter对其进行评估。我已经测试过它可以处理这个非常简单的案例。我无法说出更复杂的情况:

=INDIRECT("A1:A" & MAX(ROW(A1:A5)*(A1:A5="cat")*(A2:A6<>"cat")))

编辑:如果您真的希望返回范围而不是值,则只需删除 INDIRECT 但将其他所有内容保留在其中。

于 2012-11-02T02:54:07.910 回答