我可以在SharePoint中创建COUNTIF计算列吗?

时间:2009-06-10 20:46:25

标签: sharepoint sharepoint-2007

有没有办法创建一个SharePoint计算列,该列返回列表中条目数的计数?所以,如果我的公司“Starbucks”列表中有3位客户,我希望该字段返回“3”

5 个答案:

答案 0 :(得分:12)

(根据dariom的建议,为了清晰起见编辑了一些措辞。)

您可以使用不太知名的查找列变体来获取您想要的其他列表。

假设您在标题栏中有一个名为Companies的列表,如“Starbucks”,“Peets”等。现在您还有您引用的Customers列表,但“Company”列是一个查找列指向到公司名单的标题栏。

您可以添加与您在公司列表中描述的非常相似的计数。转到您的公司列表,在“客户”列表中添加“查找”类型的列,您会注意到,如果您指向“客户”列表,则在定义查找的下拉区域中,您将拥有新选项称为“计数相关”。这是自动生效的,因为它识别出Customers列表的查找指向了这一列表。选择Count Related选项,现在您的公司列表将有一列计算与该公司关联的客户数量。

没有编码,Javascript黑客或其他任何东西。刚刚隐藏的SharePoint自动魔术。 Column Related

答案 1 :(得分:2)

不,我认为使用开箱即用的计算列无法实现此目的。

您可以通过其他方式实现这一目标:

  • 为公司字段中的分组创建列表视图,并包含总计数。这是最简单的,但可能不是您正在寻找的。
  • 创建一个自定义列类型,执行CAML查询以查找您感兴趣的项目。如果您之前没有这样做,并且您要将此自定义列添加到的列表中有一个学习曲线很多行,你将为每行执行一个效率低下的查询 - 对于少量的行来说就没问题了。
  • 在列表中使用事件处理程序,每次在列表中添加或删除新项时,都会更新列值。这样更容易,但如果列表中有大量项目,也可能效率低下。

答案 2 :(得分:2)

正如dariom所说(该死的打字速度很快,+1!),默认情况下,SharePoint中只能使用计算列操作当前行。但是,有couple个文档workarounds涉及SharePoint Designer或jQuery。

答案 3 :(得分:2)

您可以在XSLT数据视图中获取特定列表项的计数

要执行此操作,您将需要SharePoint Designer。

右键单击SharePoint列表视图(确保列表视图包含要筛选的字段)选择转换为XSLT数据视图。然后在数据源窗口中选择“数据源”选项卡,然后将要获取的特定项目的字段拖放到您希望在XSLT数据视图中显示的位置。单击显示应获得闪电图标的数值,选择下拉菜单并选择计数,然后再次选择并选择过滤。选择“单击此处添加新子句”,然后再次选择您的字段名称并输入您的唯一值作为星巴克,然后单击确定,您可以对您想要总计的其他字段重复此过程。您现在将看到列表中的星巴克项目总数。

答案 4 :(得分:1)

我有类似的工作方式类似于Niall。基本上,我:

  1. 根据源列表,在“测试”Web上创建数据视图Web部件(DVWP) 部分页面。
  2. 添加了页脚列,用于计算。
  3. 为我的条件设置过滤器(即我想要计算的项目)。
  4. 在代码中,删除了定期项目行。
  5. 我只剩下页脚,它显示了所有列表项的过滤计数。我通过取下阴影背景进一步定制了页脚。最后,我导出了这个Web部件并将其导入到我希望用户看到列表中的项目总数的页面上(符合条件)。