【问题标题】:Counting and adding multiple variables from single cell in sheets从工作表中的单个单元格计算和添加多个变量
【发布时间】:2021-12-30 14:10:31
【问题描述】:

我有一个表格文档,其中包含用户输入数据的单元格。他们知道以某种格式输入数据;一个“数字”和一个“字母”,后跟一个空格、一个 SKU 编号,然后是一个逗号。 我想要一个公式来计算每个“字母”的数量,然后为每个字母添加“数字”。

只有五个“字母”用户可以选择; M、E、T、W、B。 他们输入的数据没有固定的顺序,也没有输入多少的限制,只要符合上述语法即可。

我附上了一个示例的屏幕截图,说明了它的外观。 黄色单元格是用户输入的数据,绿色单元格是公式创建的数据。

或者这里是一个实时版本的链接:link

我尝试使用 COUNTIF 进行此操作,但没有成功。我猜它会用一个数组来完成,但我不知道从哪里开始。如果我能看到类似的例子,我可能会做剩下的事情。

【问题讨论】:

  • 请记住,虽然您的最终目标和参数对您来说很清楚,但我们从一开始就不清楚。例如,您是否总是且仅希望每行返回五个?或者还有其他可能出现的吗?如果是后者,是否存在一组可能的“字母”?您是否总是希望退货顺序相同(即 M E T W B)?如果是这样,这些是否总是按字符串中的顺序输入?正如我所说,“在这里”还有很多未知数。
  • 我建议您共享一个指向具有足够真实数据的工作表的链接来代表所有可能性,以及手动输入(您希望公式输出结果的地方)什么结果该数据的输出应该是。甚至 5 或 10 行数据就足够了(如果这涵盖了原始数据中可能出现的所有可能性)。

标签: regex variables google-sheets split flatten


【解决方案1】:

是的:

=INDEX(REGEXREPLACE(SPLIT(REGEXREPLACE(FLATTEN(QUERY(TRANSPOSE(QUERY(TRANSPOSE(SORT(TRANSPOSE(QUERY(SPLIT(
 FLATTEN(REGEXREPLACE(TRIM(SPLIT(A2:A9, ",")), "\b(\d+(?:\.\d+)?)(.+?)\b(.*)", ROW(A2:A9)&"×$1$2×$1×$2")), "×"), 
 "select count(Col2),sum(Col3) where Col2 is not null group by Col1 pivot Col4 label count(Col2)''")))), 
 "offset 1", 0)*1&TRIM(REGEXREPLACE(TRANSPOSE(SORT(FLATTEN(QUERY(SPLIT(
 FLATTEN(REGEXREPLACE(TRIM(SPLIT(A2:A9, ",")), "\b(\d+(?:\.\d+)?)(.+?)\b(.*)", ROW(A2:A9)&"×$1$2×$1×$2")), "×"), 
 "select count(Col2),sum(Col3) where Col2 is not null group by Col1 pivot Col4 limit 0 label count(Col2)''")))), 
 ".*sum", ))),,9^9)), "([^ ]+ [^ ]+) ", "$1×"), "×"), "(\d+(?:\.\d+)?)$", "($1)"))

【讨论】:

  • 我复制粘贴了答案
  • 现在效果更好。当只有一条数据时,有没有办法让它工作?
【解决方案2】:

我添加了一个带有以下解决方案的新工作表(“Erik 帮助”):

=ArrayFormula(FILTER( SPLIT("B E M T W", " ") & " (" & IFERROR(VLOOKUP(ROW(A1:A) & SPLIT("B E M T W", " "), QUERY(FLATTEN(SPLIT(QUERY(FLATTEN(IFERROR(REPT(ROW(A1:A) & REGEXEXTRACT(SPLIT(REGEXREPLACE(A1:A&",", "\d+,", ""), " ", 0, 1), "\D") & "~", 1*REGEXEXTRACT(SPLIT(REGEXREPLACE(A1:A&",", "\d+,", ""), " ", 0, 1), "\d+")))), "WHERE Col1 <>'' "), "~", 1, 1)), "Select Col1, COUNT(Col1) GROUP BY Col1"), 2, FALSE), 0)&")", A1:A<>""))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    相关资源
    最近更新 更多