在 Google 工作表中使用正则表达式更正聚合公式,以便考虑所有实例
Correcting an aggregation formula using regex in Google Sheets so that all instances are considered
我的电子表格中有 2 个单元格。它看起来像这样:
D2 = {color: white, quantity: 23}, {color: black, quantity: 73}, {color: red, quantity: 10}
D3 = 106
正在使用以下公式生成 D3:
=SUMPRODUCT(IFERROR(REGEXREPLACE(SPLIT(SUBSTITUTE(D2, "quantity:", "♦"), "♦"), "}.*", "")))
换句话说,我只想汇总数量。
它有效,但是,数量属性必须出现在每个 "JSON" 对象的最后。如果我将 D2 更改为:
D2 = {color: white, quantity: 23, size: small}, {color: black, quantity: 73}, {color: red, quantity: 10}
因为我在数量后面加了size属性,现在D3变成了83。所以,我想做三件事:
- 聚合所有出现的数量实例。
- 使匹配不区分大小写。所以像“
QUANTITY
”这样的东西也可以工作。
- "quantity:" 之后的空格不予考虑。所以,像
{quantity:100}, {quantity: 23}, {quantity: 120}
这样的东西也可以。
我该如何解决这个问题?我尝试删除正则表达式的 "}.*"
,但这似乎破坏了公式。感谢任何帮助。
=SUMPRODUCT(IFERROR(REGEXREPLACE(SPLIT(
SUBSTITUTE(LOWER(D28), "quantity:", "♦"), "♦"), ",.*|}.*", "")))
我的电子表格中有 2 个单元格。它看起来像这样:
D2 = {color: white, quantity: 23}, {color: black, quantity: 73}, {color: red, quantity: 10}
D3 = 106
正在使用以下公式生成 D3:
=SUMPRODUCT(IFERROR(REGEXREPLACE(SPLIT(SUBSTITUTE(D2, "quantity:", "♦"), "♦"), "}.*", "")))
换句话说,我只想汇总数量。
它有效,但是,数量属性必须出现在每个 "JSON" 对象的最后。如果我将 D2 更改为:
D2 = {color: white, quantity: 23, size: small}, {color: black, quantity: 73}, {color: red, quantity: 10}
因为我在数量后面加了size属性,现在D3变成了83。所以,我想做三件事:
- 聚合所有出现的数量实例。
- 使匹配不区分大小写。所以像“
QUANTITY
”这样的东西也可以工作。 - "quantity:" 之后的空格不予考虑。所以,像
{quantity:100}, {quantity: 23}, {quantity: 120}
这样的东西也可以。
我该如何解决这个问题?我尝试删除正则表达式的 "}.*"
,但这似乎破坏了公式。感谢任何帮助。
=SUMPRODUCT(IFERROR(REGEXREPLACE(SPLIT(
SUBSTITUTE(LOWER(D28), "quantity:", "♦"), "♦"), ",.*|}.*", "")))