Google sheets 如何计算列中包含表情符号的所有单元格?

Google sheets 如何计算列中包含表情符号的所有单元格?,google-sheets,emoji,formulas,Google Sheets,Emoji,Formulas,我的产品数据库中的表情符号有问题。因为它已经投入生产,所以我从中得到的只是一个自动生成的excel电子表格.xls,经常有成千上万行。我使用Google Sheets来解析这个结果,这样我就可以轻松地共享结果 我可以使用什么公式来计算n列中包含表情符号的所有单元格的计数 例如: Data +----+-----------------+ | ID | Name | +----+-----------------+ | 1 | Chad | +----

我的产品数据库中的表情符号有问题。因为它已经投入生产,所以我从中得到的只是一个自动生成的excel电子表格.xls,经常有成千上万行。我使用Google Sheets来解析这个结果,这样我就可以轻松地共享结果

我可以使用什么公式来计算n列中包含表情符号的所有单元格的计数

例如:

Data
+----+-----------------+
| ID | Name            |
+----+-----------------+
| 1  | Chad            |
+----+-----------------+
| 2  | ✨Darla✨         |
+----+-----------------+
| 3  | John Smith      |
+----+-----------------+
| 4  | Austin ⚠️ Powers |
+----+-----------------+
| 5  | Missus Edit by Ben C. R. Leggiero:

=COUNTA(FILTER(A2:A6;REGEXMATCH(A2:A6;"[^\x{0}-\x{F7}]")))
数据 +--+---------+ |ID |名称| +--+---------+ |1 |乍得| +--+---------+ | 2 | ✨达拉✨ | +--+---------+ |3 |约翰·史密斯| +--+---------+ |4 |奥斯汀⚠️ 权力| +--+---------+
|5 | Missus由Ben C.R.Leggiero编辑:

function find_emoji(s) {
  var re = /[\u1F60-\u1F64]|[\u2702-\u27B0]|[\u1F68-\u1F6C]|[\u1F30-\u1F70]|[\u2600-\u26ff]|[\uD83C-\uDBFF\uDC00-\uDFFF]+/i;
  if (s instanceof Array) {
    return s.map(function(el){return el.toString().match(re);});
  } else {
    return s.toString().match(re);
  }
}

您无法使用常规公式提取表情符号,因为Google电子表格使用了轻量级的re2 regex引擎,该引擎缺少,包括查找表情符号所必需的引擎

您需要做的是创建一个自定义公式。选择工具菜单,然后选择脚本编辑器。。。。在脚本编辑器中,添加以下内容:

| Missus This should work:

=arrayformula(countif(REGEXMATCH(A2:A6,"[^a-zA-Z\d\s:]"),true))
保存脚本。返回电子表格,然后测试公式=find\u emojiA1

我的测试结果如下:

| Missus This should work:

=arrayformula(countif(REGEXMATCH(A2:A6,"[^a-zA-Z\d\s:]"),true))
|Missus这应该行得通:


这不符合数字、逗号、句点等吗?是的,会的。这必须是正则表达式的一部分:[^A-Za-z.,0-9]好的,将正则表达式更改为更一般的形式,如[^\x{0}-\x{F7}],我会接受这一点answer@daniel那很好;真正的目的是,我们有古老的系统,只处理ASCII与用户输入从iPad交互。谢谢编辑!我将比较这三种模式的性能,然后回到y'all。为什么要使用[ab-yz]|[12-89]模式而不是[ab-yz12-89]模式?此外,我看到这里正在进行许多操作。这个问题的表现如何与其他答案相匹配?我正在检查的电子表格有上万行。这取决于你到底需要什么。如果您只需要一个大概的计数,并且不介意使用外来名称的误报,那么更简单的正则表达式就可以了。如果您特别希望只计算表情符号,但希望获得性能,那么您需要将自定义公式更改为更具体的公式,这样您就可以使用类似于=count\u not\u emojiA3:AAnswer updated的公式。常规公式可以做到这一点。不需要自定义公式。我喜欢你的答案是多么彻底!我将比较这三种方法的性能,然后返回给大家。谢谢你的简单回答!我会比较这三个方面的表现,然后再和你们联系。