我想知道如果 Excel 检测到某一行内的特定(预先设定的)ID,如何让其计算该列中的值。
具体来说,我有两张工作表。在工作簿 A 中,一个人输入视频编码项目的数据。他们列出了 ID、日期、开始时间、结束时间以及他们可能看到的各种变量。例如,在“PRIMARY”列中,编码员可以输入 P、W 或 A。
我正在寻找一种方法,供有权访问主工作簿(我们称之为工作簿 B)的人使用,我需要一个公式,该公式在工作簿 A 中搜索唯一 ID(即,视频 d509 是否位于工作簿中视频 ID 列下的任何位置),如果是,则转到具有 PRIMARY 标签的列,并计算当视频 ID 列为 d509 时“P”的每个实例,然后计算与该 ID 相对应的视频的每个“W”实例,然后计算与该 ID 相对应的视频的每个“A”实例。
我尝试使用 vlookup / count if 函数,但它不起作用(见下文):
=IF(VLOOKUP(B2,'[Coder1 Template.xlsx]ENTRY'!$B$2:$K$7100,7,FALSE),COUNTIF('[Coder1 Template.xlsx]ENTRY'!$H$2:$H$7100,"P"),0)
我还需要它最终使用多个标准。例如,它只需要为合作伙伴 1 计算该特定视频的该列的 P。然后它必须为合作伙伴 2 执行相同的操作。
关于实现这一目标的最佳方法有什么想法吗?
我不确定如何将工作簿附加为示例,但这里有一些带有虚拟数据的模板的图像:
编码器(数据输入)工作簿:入门工作簿 主(数据计数)工作簿:主工作簿
*注意:抱歉,我在图片中写的“sum”的意思是“count”。本质上,我希望它计算出与每个视频 ID 对应的 P 的数量。
答案1
与我在评论中所写的相反,事实证明它COUNTIFS
在 Excel 2010 中可用。您可以使用它来计算在 B 列中具有给定 id 和在 H 列中具有“P”的行数。如果在单元格 B2 中输入“d509”,则以下公式将返回 5(假设您的 Entry Workbook 图片中显示的数据。
=COUNTIFS('[Coder1 Template.xlsx]ENTRY'!$B$2:$B$7100,B2,'[Coder1 Template.xlsx]ENTRY'!$H$2:$H$7100,"P")
该COUNTIFS
函数计算符合列出的所有条件的项目的数量。
答案2
检查您是否有 COUNTIFS 函数;如果有,这是您的最佳答案。您可以指定一个范围和多个条件。
如果失败的话,您可以使用数组公式来执行此操作。
=SUM( N( B2='[Coder1 Template.xlsx]ENTRY'!$B$2:$K$7100 ) * N('[Coder1 Template.xlsx]ENTRY'!$H$2:$H$7100 = "P" ) )
使用 Ctrl-Shift-Enter 输入公式,这样公式就会显示为{...}
带有花括号(您无需键入这些括号)。数组公式通常相当脆弱,但它们可以做一些了不起的事情。这里 N() 函数给出 TRUE -> 1 和 FALSE -> 0,我们可以将并行测试相乘,并对相应数组中两者都为真的情况求和。