2

我有一张桌子,学生证按组分开。我需要一种方便的方法来计算每组中的学生总数,并将其填充在每组的最后一行之后(标有??

在此处输入图像描述

目前我只是输入=COUNT()然后手动找出每个组的范围的顶部和底部边界。一点都不方便。

我在想一个可能的解决方案可能是以下之一:

  1. 某种数据透视表排列。这个我失败了。
  2. Excel数据->大纲->小计函数。再次,失败。它不断在我的表中创建新行。
  3. 可以粘贴到每个单元格中的通用公式??。不是最优雅的解决方案,但仍然可以。
  4. 一个。如果没有其他方法,作为最后的补救措施。
4

3 回答 3

3

以下步骤将计算小计,同时保留工作表的结构和格式。

  1. 将此公式放入单元格 C1 并将公式复制到列中:

    =IF(NOT(ISERROR(SEARCH("Total",A1))),COUNTA(INDIRECT("B"&MATCH(LEFT(A1,LEN(A1)-7),A:A,0)+1&".B"&(MATCH(A1,A:A,0)+1))),IF(B1="","",B1))
    
  2. 使用公式规则 =(MOD(ROW(C1),2)=0) 将条件格式应用于单元格 C1,并使用蓝色填充以匹配其他行的阴影。使用粘贴特殊格式将格式复制到列中。

  3. 隐藏 B 列,或使用“粘贴特殊值”将 C 列中的值复制到 B 列并隐藏 C 列。如果您决定将值复制到 B 列,则无需设置条件格式。

这是公式的作用:

  • 首先,通过使用 SEARCH 函数在行的 A 列中的单元格中搜索单词“Total”来检查公式的行是否为 Total 行。

    如果找到单词“Total”:

    确定工作表中该总行的组的学生 ID 范围:

    a) 使用 MATCH 函数确定在其中找到单词“GroupX”和“GroupX Total”的行。这样,您就知道该组的 ID 位于从 x 行开始到 y 行结束的范围内。

    b) 使用起始行号和结束行号,构造 ID 所在的地址范围,该范围必须是字符串“B”+(行 x)+“。” +“B”+(第 y 行)。

    c) 使用 INDIRECT 函数将字符串转换为可以在公式中实际使用的范围引用。

    使用 COUNTA 函数和范围计算小组中的学生人数,并将其显示为公式的结果。

    如果找不到“总计”一词

    检查B列的单元格是否为空

    a) 如果为空,则显示空白作为公式的结果

    b) 如果不为空,则必须是学生ID,所以显示ID作为公式的结果。

于 2012-12-22T02:21:43.573 回答
2

添加一列(我通常将其添加到现有矩阵的左侧),从第 2 行开始输入一个公式,填充旧列 A 中的空白。然后可以在数据透视表中使用包含新列的旧矩阵。

  1. 因此,在矩阵左侧插入一列,现在是 A 列。在单元格 A1 中放置一个标题,例如“Group Name1”

  2. 在单元格 B2 中输入以下公式并将其扩展到末尾: =IF(B2="",A1,B2)这样您的空白将被填充。

  3. 现在在这个矩阵上应用一个枢轴,你就在那里。

也许不是最好看的解决方案,但它快速且运行良好。

于 2012-12-22T00:47:08.660 回答
0

如果你有这样的桌子

学生编号 学生组名称 ..........

然后你可以使用 countif/countifs 公式

于 2012-12-23T20:23:06.860 回答