Google sheets 如何计算Google工作表中一列单元格中的所有项目?

Google sheets 如何计算Google工作表中一列单元格中的所有项目?,google-sheets,google-sheets-formula,spreadsheet,Google Sheets,Google Sheets Formula,Spreadsheet,有人能帮我弄一下谷歌表吗?基本上,我需要它来计算所有项目,包括单元格中重复的项目。到目前为止,还没有考虑到它们。我把错误的结果标成了红色 我正在使用COUNTIF和COUNTIFS函数。也许还有其他更好的选择。 感谢您的帮助 您可以尝试: E2中的公式: =ARRAYFORMULA(COUNTIF(TRIM(REGEXREPLACE(SPLIT(TEXTJOIN("+",TRUE,B$2:B$20),"+"),"(?:Purple|Blue|P

有人能帮我弄一下谷歌表吗?基本上,我需要它来计算所有项目,包括单元格中重复的项目。到目前为止,还没有考虑到它们。我把错误的结果标成了红色

我正在使用COUNTIF和COUNTIFS函数。也许还有其他更好的选择。 感谢您的帮助

您可以尝试:

E2
中的公式:

=ARRAYFORMULA(COUNTIF(TRIM(REGEXREPLACE(SPLIT(TEXTJOIN("+",TRUE,B$2:B$20),"+"),"(?:Purple|Blue|Pink|Green)","")),D2))
请注意,我稍微更改了D列的值,以便它们实际上与B列中的值匹配。

您可以尝试:

E2
中的公式:

=ARRAYFORMULA(COUNTIF(TRIM(REGEXREPLACE(SPLIT(TEXTJOIN("+",TRUE,B$2:B$20),"+"),"(?:Purple|Blue|Pink|Green)","")),D2))

请注意,我对D列的值做了一些修改,使它们实际上与B列中的值相匹配。

您需要创建一个数组,每个元素中只有一行。 然后您可以使用
过滤器
功能

要创建阵列,请执行以下操作:

split(textjoin(char(10),true,B:B),char(10))
然后,要过滤和计数:

=counta(filter(split(textjoin(char(10),true,B:B),char(10)),isnumber(find("Mini Notebook",split(textjoin(char(10),true,B:B),char(10)))),not(isnumber(find("cover",split(textjoin(char(10),true,B:B),char(10)))))))
您可以对其他行使用类似的逻辑


请注意,
Find
区分大小写。如果不希望出现这种行为,请使用
Search

您需要创建一个数组,每个元素中只有一行。 然后您可以使用
过滤器
功能

要创建阵列,请执行以下操作:

split(textjoin(char(10),true,B:B),char(10))
然后,要过滤和计数:

=counta(filter(split(textjoin(char(10),true,B:B),char(10)),isnumber(find("Mini Notebook",split(textjoin(char(10),true,B:B),char(10)))),not(isnumber(find("cover",split(textjoin(char(10),true,B:B),char(10)))))))
您可以对其他行使用类似的逻辑


请注意,
Find
区分大小写。如果不希望出现这种行为,请使用
Search

在列表的其余部分,需要向下拖动给定的中非常好的公式

扩展公式

您可以在单元格
G1

=QUERY(TRANSPOSE(INDEX(TRIM(REGEXREPLACE(SPLIT(TEXTJOIN("+",TRUE,B:B),"+"),"(?:Purple|Blue|Pink|Green)","")))),
            "select Col1, count(Col1) where Col1<>''
             group by Col1 label count(Col1) 'QTY' ",1)
=查询(转置索引(TRIM(REGEXREPLACE)(SPLIT(TEXTJOIN(“+”,TRUE,B:B),“+”,(?:紫色|蓝色|粉色|绿色)”,“”)),
“选择列1,计数(列1),其中列1”
按列1标签计数分组(列1)“数量”,1)

专业人士

  • 针对所有现有和未来产品的单一自扩展公式
  • 所有产品都按字母顺序排列
  • 不需要额外的列
    D
    来手动写入所有产品。这样可以避免人为错误
  • 缺点

  • 如果你只想要其中的一部分,比如笔记本电脑,那么所有的产品都会被考虑在内这一事实将是一个问题-

  • 对于列表的其余部分,需要向下拖动由给出的非常好的公式

    扩展公式

    您可以在单元格
    G1

    =QUERY(TRANSPOSE(INDEX(TRIM(REGEXREPLACE(SPLIT(TEXTJOIN("+",TRUE,B:B),"+"),"(?:Purple|Blue|Pink|Green)","")))),
                "select Col1, count(Col1) where Col1<>''
                 group by Col1 label count(Col1) 'QTY' ",1)
    
    =查询(转置索引(TRIM(REGEXREPLACE)(SPLIT(TEXTJOIN(“+”,TRUE,B:B),“+”,(?:紫色|蓝色|粉色|绿色)”,“”)),
    “选择列1,计数(列1),其中列1”
    按列1标签计数分组(列1)“数量”,1)
    

    专业人士

  • 针对所有现有和未来产品的单一自扩展公式
  • 所有产品都按字母顺序排列
  • 不需要额外的列
    D
    来手动写入所有产品。这样可以避免人为错误
  • 缺点

  • 如果你只想要其中的一部分,比如笔记本电脑,那么所有的产品都会被考虑在内这一事实将是一个问题-

  • COUNTIFS计算满足条件的单元格数。同一单元格中有2个值,但它们仅计为1。单元格B7=
    “迷你笔记本粉色+迷你笔记本蓝色”
    将这些值分为两个不同的单元格除了上面的注释外,用于计算“笔记本封面”实例的公式是“包含“笔记本封面”而不包含“迷你”——如果您有类似的单元格,则此公式将失败“笔记本封面紫色+迷你笔记本粉色”。您需要将每个值分隔到不同的单元格中。COUNTIFS统计满足您条件的单元格数。同一单元格中有2个值,但它们仅计为1。单元格B7=
    “迷你笔记本粉色+迷你笔记本蓝色”“
    将这些值分成两个不同的单元格除了上面的注释外,您用于计算“笔记本封面”实例的公式是“包含“笔记本封面”而不包含“迷你””——如果您有“笔记本封面紫色+迷你笔记本粉色”这样的单元格,则此公式将失败。”。您需要将每个值分离到不同的单元格中。考虑得很好。我冒昧地扩展了你的公式。请看一看。@marikamitsos,做得很好。非常感谢!它工作得很好!但是你能告诉我,如果统计数据和订单在不同的表格中,那么应该对公式做些什么吗?链接到修改后的电子表格:您只需修改
    #REF
    错误以包含正确的参考。老实说,@Earthlien,这确实是最基本的东西。在公式中删除错误,然后转到包含数据的选项卡并选择适当的范围。GS将自动更正它以引用工作表。它工作正常!非常感谢,@JvdV!我对这东西还很陌生。我只是想收集一下GS的资料:)再次感谢!考虑得很好。我冒昧地扩展了你的公式。请看一看。@marikamitsos,做得很好。非常感谢!它工作得很好!但是你能告诉我,如果统计数据和订单在不同的表格中,那么应该对公式做些什么吗?链接到修改后的电子表格:您只需修改
    #REF
    错误以包含正确的参考。老实说,@Earthlien,这确实是最基本的东西。在公式中删除错误,然后转到包含数据的选项卡并选择适当的范围。GS将自动更正它以引用工作表。它工作正常!非常感谢,@JvdV!我对这东西还很陌生。我只是想收集一下GS的资料:)再次感谢!哦,哇!这很方便。非常感谢。但是,有没有可能避免按字母顺序排列(不幸的是,我不希望这样做