用于有条件地计算 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 NameFirst Name 连接是有效的,但其他选项可以更紧凑。

假设在工作表 B 中,您在 C1:E1 中分别有 PAL(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 DataPresent 似乎无关紧要。

【讨论】:

这会更干净,但是来自考勤应用程序的数据在各个列中没有PAL(这在我的帖子中可能不清楚) .它有一列,其中记录记录为PAL

以上是关于用于有条件地计算 Alpha 字符的 Google 表格公式的主要内容,如果未能解决你的问题,请参考以下文章

Google 表格条件格式不适用于整个范围

用于 C# 的 Google Protobuf 3.0.0 程序集

有哪些算法/优化可用于计算数组中元素的条件子集?

在 Google 表格中使用 ARRAYFORMULA 有条件地基于辅助列数据进行 CONCAT

Google Play商店无法打开Beta alpha版本的链接

根据风味文件夹内容有条件地应用 gradle 插件