Excel基于条件的自动编号行

时间:2016-09-08 16:30:24

标签: excel excel-formula

我正在尝试在Excel中创建一个电子表格,根据另一列的内容在列(B)中创建一个序列号。目前,A列中存在两种可能性(“BI”或“GF”)。所以我希望数据看起来像这样

    COL A    COLB
     BI       1
     BI       2
     GF       1
     BI       3
     GF       2
     GF       3
     BI       4
     BI       5

我已尝试过多次尝试,但似乎无法找到解决方案。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:5)

在B2中,尝试以下公式:    = COUNTIF(A $ 2:A2,A2)

答案 1 :(得分:-1)

尝试使用偏移方程式。

COL B中的第一个单元格与此类似:

<强> = COUNTIFS(OFFSET(A $ 1 $ 1:A1,0,0),A1)

第二个应该是这样的:

<强> = COUNTIFS(OFFSET(A $ 1 $ 1:A2,0,0),A2)

根据需要将其向下拖动到Col B中。如果您使用的是表格,则应自动填充。

<强>说明: 基本上,您使用OFFSET公式来创建动态范围。 A $ 1 $作为您的范围的开始,使其成为绝对参考,A1将作为您的范围的结束。

通过使结束单元格成为相对引用,COUNTIFS函数搜索的数组将永远不会超出公式所依赖的单元格的行。

在您的示例中,Col B第一行中的公式将导致1.原因是OFFSET返回A $ 1 $:A1的数组,COUNTIFS搜索该数组并返回所有单元格的计数等于到A1,这是&#34; BI&#34;。

第二行保留A $ 1 $数组的原始起始单元格,但数组的末尾为A2。所以COUNTIFS函数看到要搜索的新数组是A $ 1 $:A2。然后COUNTIFS搜索等于A2的每个单元格,其中A1是&#34; BI&#34;。有两个单元格等于&#34; BI&#34;在新数组中因此reult是2。

如何按预期工作,显示在Col B的第三行。

OFFSET函数只是将数组大小扩展为A $ 1 $:A3。 COUNTIFS将像往常一样工作,它采用数组,在Excel中称为条件范围,并对所有等于A3的项执行计数。在这种情况下,A3等于&#34; GF&#34;在数组A $ 1 $:A3中有两个单元格等于&#34; BF&#34;和一个等于&#34; GF&#34;。

希望这有帮助!