用于有条件地计算 Alpha 字符的 Google 表格公式
Posted
技术标签:
【中文标题】用于有条件地计算 Alpha 字符的 Google 表格公式【英文标题】:Google Sheets Formula for Conditionally Counting Alpha Characters 【发布时间】:2018-09-18 22:23:45 【问题描述】:我正在寻找可以执行“SUMIF”的“COUNT”等效项的公式。我在“工作表 A”中有出勤记录,A 列是“姓氏”,B 列是“名字”,C 列是“出勤率”。出勤列具有“P、A、L”值,分别代表出席、缺席或迟到。表格每天都会自动更新,因为当天出勤的新数据会附加在表格底部。
在“表 B”中,我有每个学生的姓名,与上表中的语法相匹配(“姓氏”“名字”)。在这张表中,我希望能够计算每个“P”、“A”和“L”的实例数。
所以...我希望能够在工作表 A 中计算学生在出勤栏中获得“A”的次数,条件是按学生姓名。我知道使用 SUMIF 您可以有条件地求和一个范围。 COUNTIF 无法按学生姓名适当过滤值。我也无法让 DCOUNTA 工作。
接受任何建议,无论多么复杂。
【问题讨论】:
【参考方案1】:对于任何好奇的人,我想出了自己的粗略解决方案。
我为每个人创建了一个新工作表:出席,迟到。在每张纸中,我运行了一个查询:=QUERY('Imported Data'!A:C, "select * where Col3 = 'P'")
。此查询返回个人被标记为“P”的每条记录。在各自的工作表上重复“A”和“L”。
在记录总数的主工作表中,我使用了 COUNTIF:=COUNTIF(Present!D:D,C2)
。我有一个小问题需要解决,因为我使用“姓氏”和“名字”列导入了我的数据,但无法跨两列进行 COUNTIF。因此,我在每个 Present/Absent/Late 工作表中创建了一个 ARRAYFORMULA。这连接了名称值,因此我可以在我的主工作表中搜索该奇异值。这出现在出席/缺席/迟到的 D:1 中:=Arrayformula(A:A&", "&B:B)
。
稍微重复一下,我就能够创建自己的、自动更新的考勤跟踪器。
【讨论】:
【参考方案2】:您似乎付出了巨大的努力来解决一个不存在的问题。一般来说,如果 SUMIF 用于添加,那么非常相似的 COUNTIF 应该用于计数。因为在大多数规模适中的群体中,名字和姓氏都不可能是唯一的(即使组合很可能是唯一的),通常给人们分配 ID 是一个好主意。将Last Name
与First Name
连接是有效的,但其他选项可以更紧凑。
假设在工作表 B 中,您在 C1:E1 中分别有 P
、A
和 L
(A 列中的 Last Name
和 B 列中的 First Name
的唯一集合),那么在 C2 中,以下可能就足够了如果复制到 E2 和 C2:E2 以适应:
=COUNTIFS('Sheet A'!$A:$A,$A2,'Sheet A'!$B:$B,$B2,'Sheet A'!$C:$C,C$1)
表格 Imported Data
和 Present
似乎无关紧要。
【讨论】:
这会更干净,但是来自考勤应用程序的数据在各个列中没有P
A
L
(这在我的帖子中可能不清楚) .它有一列,其中记录记录为P
A
或L
。以上是关于用于有条件地计算 Alpha 字符的 Google 表格公式的主要内容,如果未能解决你的问题,请参考以下文章
用于 C# 的 Google Protobuf 3.0.0 程序集
在 Google 表格中使用 ARRAYFORMULA 有条件地基于辅助列数据进行 CONCAT