【问题标题】:Count number of sentences in a given cell计算给定单元格中的句子数
【发布时间】:2021-02-25 20:59:21
【问题描述】:

我首先尝试了 2 个不同的公式:

 TRIM(MID(SUBSTITUTE($C2,"#",REPT(" ",LEN($C2))),(LEN($C2)*(COLUMN(C2)-3))+1,LEN($C2))) 

我也用 VBA 代码尝试了STR_SPLIT($C2,"#",COLUMN(C2))

Function STR_SPLIT(str, sep, n) As String

    Dim V() As String
    V = Split(str, sep)
    STR_SPLIT = V(n - 1)    
    
End Function

我的问题是 - 因为单元格中的句子数量不同,我必须不断更改公式以捕获所有句子。

例如:

  • 单元格C2 中有7 个句子,由# 分隔
  • 单元格D2 有4 个句子,由# 分隔
  • 单元格 E2 中有 5 个句子,由 # 分隔

等等。

我确实通过将公式(COLUMN(C2)-3)) 13 的一部分中的-3 数字更改为-4-5 等来解决这个问题。引用的数字是不同单元格中可能的最大句子数。但是单元格C3 中只有 4 个句子。我不知道如何更改宏,使其涵盖所有不同数量的句子。

给定句子的单词将始终相同。有29列句子数据,超过2000行我的目的是计算有多少句子,然后计算每个句子有多少,这样我就可以按出现的顺序排列它们,请任何人帮忙。附件是数据的图片示例。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    你可以用一个简单的 VBA 函数来做到这一点:

    Function NumberOfSentences(s As String) As Integer
    NumberOfSentences = UBound(Split(s, "#")) + 1
    End Function
    

    然后从一个单元格中调用它:

    =NumberOfSentences(C2)
    

    【讨论】:

    • 您好,非常感谢您的回答,这确实有效,它会计算每个单元格中我需要知道的句子数。我还需要知道一个特定句子在我的所有数据/所有单元格中出现了多少次。例如“评估笔记不清楚”或“语调”在我的所有数据中出现了多少次。我的想法是,然后我可以使用数据透视表对他们进行排名,前 5 名将用于推动团队改进,谢谢
    • @Jimbo 首先,如果此答案解决了您的问题,请单击答案旁边的复选标记来表明这一点。如果答案有用,请通过投票(答案旁边的向上箭头)来表明这一点(当然,如果答案没有用,请通过投票来表明)。其次,你在这里问的确实是一个新问题,你应该这样问。至于实际问题,我会编写遍历每个单元格的代码,将单元格内容拆分为上面的句子,并使用 Scripting.Dictionary 来存储每个句子的计数。
    • @Jimbo 更好的解决方案是将字典替换为disconnected recordset;对记录集进行排序很简单,而从字典中获取排序后的数据并不简单。
    • @Jimbo 我冒昧地发布了这个as a new question 连同答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多