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

问题描述 投票:0回答:4

我的生产数据库中的表情符号有问题。由于它已投入生产,我从中得到的只是一个自动生成的 Excel 电子表格 (

.xls
),时常包含数万行。我使用 Google Sheets 来解析此内容,以便我可以轻松分享结果。

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

例如:

Data
+----+-----------------+
| ID | Name            |
+----+-----------------+
| 1  | Chad            |
+----+-----------------+
| 2  | ✨Darla✨         |
+----+-----------------+
| 3  | John Smith      |
+----+-----------------+
| 4  | Austin ⚠️ Powers |
+----+-----------------+
| 5  | Missus 🎂        |
+----+-----------------+

Totals
+----------------------------------+---+
| People named Chad                | 1 |
+----------------------------------+---+
| People with emoji in their names | 3 |
+----------------------------------+---+
google-sheets emoji formulas
4个回答
2
投票

Ben C. R. Leggiero 编辑:

=COUNTA(FILTER(A2:A6;REGEXMATCH(A2:A6;"[^\x{0}-\x{F7}]")))

1
投票

这应该有效:

=arrayformula(countif(REGEXMATCH(A2:A6,"[^a-zA-Z\d\s:]"),true))

1
投票

您无法使用常规公式提取表情符号,因为 Google Spreadsheet 使用轻量级 re2 正则表达式引擎,该引擎缺乏 许多功能,包括查找表情符号所需的功能。

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

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);
  }
}

保存脚本。返回电子表格,然后测试您的公式

=find_emoji(A1)

我的测试结果如下:

| Missus 🎂        | 🎂   |
| Austin ⚠️ Powers | ⚠   |
| ✨Darla✨        | ✨   |
| joke 😆😆        | 😆😆 |

并且,要计算没有表情符号的条目,您可以使用以下公式:

=countif( arrayformula(isblank( find_emoji(filter(F2:F,not(isblank(F2:F)))))), FALSE)

编辑

我错了。您可以使用常规公式来提取表情符号。正则表达式语法是

[\x{1F300}-\x{1F64F}]|[\x{2702}-\x{27B0}]|[\x{1F68}-\x{1F6C}]|[\x{1F30}-\x{1F70}]|[\x{2600}-\x{26ff}]|[\x{D83C}-\x{DBFF}\x{DC00}-\x{DFFF}]


0
投票

取决于您的用途。

如果只是为了跟踪/没有链接脚本或流到新表 -> 您可以使用“插入”>“数据透视表”功能,这使您可以更轻松地过滤和直观地恢复您拥有的内容,而无需使用公式。

正如此评论所说 为什么谷歌表格另存为 PDF 不会在单元格中显示表情符号?,在使用表情符号和正则表达式时,谷歌表格可能会变得非常棘手,除此之外,谷歌表格还使用正则表达式 SRE,这是一种不同的方法正则表达式引擎。

© www.soinside.com 2019 - 2024. All rights reserved.