在组中查找最小值,然后单击';如果存在';是否在Excel中的同一组中重新设置其他值

在组中查找最小值,然后单击';如果存在';是否在Excel中的同一组中重新设置其他值,excel,group-by,min,Excel,Group By,Min,我需要在每个组中找到最小年份值(分组因子是ID)。当一个组中只有年份值“0”时,最小值结果将为“0”,但当还有其他年份值(例如1997、0、2002)时,我需要省略“0”并找到下一个最小值(在本例中,它将是1997年,而不是0) 例如,如果我有以下数据: ID year 170946 1960 170946 1960 170950 0 170950 0 170952 1905 435041 1990 435

我需要在每个组中找到最小年份值(分组因子是ID)。当一个组中只有年份值“0”时,最小值结果将为“0”,但当还有其他年份值(例如1997、0、2002)时,我需要省略“0”并找到下一个最小值(在本例中,它将是1997年,而不是0)

例如,如果我有以下数据:

ID      year    
170946  1960    
170946  1960    
170950  0       
170950  0       
170952  1905    
435041  1990    
435041  1995    
435046  0       
435046  1995    
435046  2002    
然后,我希望新列的外观如下所示:

ID      year    MIN
170946  1960    1960
170946  1960    1960
170950  0       0
170950  0       0
170952  1905    1905
435041  1990    1990
435041  1995    1990
435046  0       1995
435046  1995    1995
435046  2002    1995
=SMALL(IF(A:A=A2,B:B),IF(MIN(IF(A:A=A2,B:B))=0,2,1))

有人能帮我吗?

你可以在C2中使用这个数组公式

=MIN(如果(A$2:A$100=A2,如果(B$2:B$1000,B$2:B$100))

按CTRL+SHIFT+ENTER确认并向下复制

见下文


必须将数组公式与
IF
MIN
SMALL
一起使用,如下所示:

ID      year    MIN
170946  1960    1960
170946  1960    1960
170950  0       0
170950  0       0
170952  1905    1905
435041  1990    1990
435041  1995    1990
435046  0       1995
435046  1995    1995
435046  2002    1995
=SMALL(IF(A:A=A2,B:B),IF(MIN(IF(A:A=A2,B:B))=0,2,1))

尝试按
Ctrl+Shift+Enter
而不是按单个
Enter

您不能删除零数据,或用撇号(')替换它们吗?它起作用了,但在我确认之前不能。顺便问一下,它将公式设置为“数组公式”。如果您查看公式编辑栏,它会在公式的开头和结尾添加
{}
(如果您键入它们并按单个
Enter
,则无法工作)。它仅以这种方式工作!