2014-11-20 136 views
1

我想查找设置范围内的文本实例。公式:计算表格范围内的文本实例

下面的公式将在一般工作,并产生以下信息:

=COUNTIFS($B$2:$B2;$B2) 

助手名称
1鲍勃
2鲍勃
约翰一书
约翰二书
约翰三书

但是,使用Table中的这个公式并将数据插入到一个新行中,您可以在John的第二个实例中得到这个结果:

=COUNTIFS($B$2:$B6;$B5)  

帮助名称
1鲍勃
2鲍勃
1约翰
约翰
约翰
虽然约翰的第二个实例应该是:

=COUNTIFS($B$2:$B5;$B5)  

由于在添加另一行时,表格会自动填充公式,是否有其他方法可以制作此公式或使其生效?
可悲的是,下面的代码将无法正常工作:

=COUNTIFS($B$2:$B&Row(B5);$B5) 

感谢您的支持!

+1

'= COUNTIF(INDIRECT( “B $ 2:B” &ROW()),B2)'可能是值得一试。 – pnuts 2014-11-20 22:32:45

+1

@pnuts - “B $ 2:B”中的** $ **很好地提醒您正在完成的是什么,严格来说这不是必须的,因为文本值永远不会增加。 – Jeeped 2014-11-21 11:49:48

+0

@Jeeped TQ。我明显停下来思考,但我同意取消一些但不是全部的冗余。还搞砸了以前的评论。我的意思是在表格中插入一行而不是在表格中(但是写下相反的!) – pnuts 2014-11-21 15:03:16

回答

1

这是使用常规单元格引用的表格,新行和自动填充公式的已知问题。如果你保持细胞寻址表的方法,你可以用OFFSET重塑COUNTIF范围参数,并使用在名称列中相邻单元格的表格单元格引用。

enter image description here

在头部下方的第一助手列单元的公式为,

=COUNTIF(OFFSET([Name],0,0,ROW(1:1),1),[@Name])

OFFSET是另一个挥发性函数(像INDIRECT),其上的任何计算周期重新计算;而不仅仅是那些影响结果变化的价值观。如果你有大量的数据,计算滞后将很快变得烦人。

更多关于这在Use structured references in Excel table formulas

+0

好了,玩过Jeeped。 非常感谢您的答复和链接。现在也很乐意开始使用新方法。 – Ekibyogami 2014-11-22 13:45:54