如果另一列与动态值匹配,如何计算此列或该列中的“非空”值

问题描述 投票:0回答:1

我正在尝试计算同一行中的另一个单元格包含特定字符串的两个单元格不为空/非空白的次数。

表1(输入数据)

| Got   | Location |   Name   |   Coords 1   |   Coords 2   |
| TRUE  |  Fridge  |   Milk   |              | (5341, 3258) |
| FALSE |  Fridge  |    Egg   |              |              |
| FALSE |  Fridge  |   Bread  | (5356, 3128) |              |
| TRUE  |  Fridge  |  Cheese  |              |              |

表2(理想公式输出)

| Location | Total Got | Total There | Total With Coords |
|  Fridge  |    2      |     4       |        2          |

表2(低于理想的公式输出)

| Location | Total Got | Total There | Total Coords 1 | Total Coords 2 |
|  Fridge  |    2      |     4       |        1       |        1       |

因此,我试图为表 2 的 D 列获取的理想答案是 2,因为有两行的任一坐标列都不为空。

我可以使用 =COUNTIFS(Table1!A:A, true,Table1!B:B,A2) 来计算从冰箱中被抢走的物品数量,所以我想我可以说 =COUNTIFS( Table1!D:D, <>"",Table1!B:B,A2) 或 =COUNTIFS(Table1!D:D, <>null,Table1!B:B,A2) 但这些不起作用。 =DCOUNTA(Table1!C:E,1,<>"") 和 =DCOUNTA(Table1!C:E,1,<>null) 即使在我尝试检查位置之前也会返回错误。

我不太记得 SQL,所以 =QUERY(Table1!A:E,"SELECT COUNT(D) WHERE D!='' AND B='Fridge'",0) 失败也就不足为奇了。我也无法弄清楚如何使第二项使用我正在显示数据的表中的值,并且输出占用不同行中的两个单元格。

=ARRAYFORMULA(SUM(N(REGEXMATCH(Table1!D2:D, " ")))) 计算列中正确的坐标数,但我不知道这里发生了什么或如何让它计算多列,或位置。

google-sheets-formula
1个回答
0
投票

事实证明,我必须跳出牢房思考,而不是跳出框框思考。我向 Table1 添加了一列,用于检查两列中任一列中的值并返回 true 或 false。 =IFS(D2<>"", true,E2<>"", true) 适用于此。

| Got   | Location |   Name   |   Coords 1   |   Coords 2   |  AnyCoords  |
| TRUE  |  Fridge  |   Milk   |              | (5341, 3258) |    TRUE     |
| FALSE |  Fridge  |    Egg   |              |              |    FALSE    |
| FALSE |  Fridge  |   Bread  | (5356, 3128) |              |    TRUE     |
| TRUE  |  Fridge  |  Cheese  |              |              |    FALSE    |

然后我通过使用公式 =COUNTIFS(Table1!F:F, true,Table1!B:B,A2) 计算新列中的真实值来解决初始问题。

我正在快速发布和回答我自己的问题,因为问题是,我无法在 Google 或 Stack Overflow 搜索上找到这个答案,而且我花了几个小时才找到答案(在写问题时),所以希望这使得将来更容易找到。我现在真的很沮丧而且很头疼。

© www.soinside.com 2019 - 2024. All rights reserved.