我目前正在处理一个基于人们评论的大型数据集。该数据集包括2.5万个人对不同书籍的评论,文本列上的每一行都是唯一的,并且有很多句子。
我的问题是,我想编码文本是否包含任何ALL CAPS单词。例如,有人可以说:“This book is Amazing!I loved it!.”通常情况下,Excel允许您直接识别单元格何时完全大写,但这种情况比这更独特,因为我希望能够看到文本中的任何单词是否全部大写。任何建议都将受到欢迎。
我在谷歌上搜索了可能的解决方案,也询问了ChatGPT3.5和GPT 4。没有任何结果给了我一个可实施的建议(GPT给出的代码太长,Excel无法执行,它给出的较短的代码显然是错误的)
2条答案
按热度按时间jvlzgdj91#
假设您可以将数据放入Excel中的表中,您可以使用PowerQuery很容易地做到这一点,使用一些虚拟数据,如下所示。
选择表格中的一个单元格,然后转到Data =〉Get &Transform Data =〉From Table。
这将加载Power Query编辑器,如果您转到Add Column =〉Custom Column并输入以下内容,它将添加一个True/False列,指示每行
是否有大写字母
然后转到File =〉Close & Load To... x1c4d 1x
并选择将其加载到新工作表或现有工作表上的表中,它将给予数据
x 1c 6d 1x
HasCaps代码的工作原理是在每个空格“”处分割文本列并创建一个列表,然后检查列表中的每个项目在大写时是否相同,然后检查列表中是否有任何“true”。
nx7onnlm2#
假设输入数据在单元格
A1
中,并考虑问题的注解部分中指示的其他条件,您可以尝试以下操作:1)排除长度等于1的字,2)也考虑作为字定界符,
:它可以封装在用户
LAMBDA
函数Z
中,因此可以将其用于数组范围。下面是输出:
它通过``或
,
分隔符标识单词,然后使用EXACT
函数进行区分大小写的比较。请记住,如果你有
AMAZING01
,它也会认为这种情况是有效的。如果你想排除它,你需要定义允许的字符列表(lk
),并检查只有这样的字符可以出现。例如,对于大写字母感叹号和标点符号,你可以考虑以下几点:您可以在这里检查ASCII字符列表,并以类似的方式添加您考虑的字符。例如,您可以使用
CHAR(33)
而不是"!"
。如果您可以从ASCII字符列表中找到一系列有效的连续值,则使用该函数是有意义的。表达式:
TEXTSPLIT(s, lk,,1)
从每个单元格上的s
名称中提取所有无效字符,并在所有字符都有效时产生Empty Array
(#CALC!
)类型的错误,这就是我们要寻找的条件。