2022-10-12 06:21来源:m.sf1369.com作者:宇宇
方案一:借助Excel
如果使用场景是偶尔统计一篇文章不长的词频,可以使用excel:
(Excel 2007~2013的版本里,一个单元格最多容纳32,767个字符,也就是说目标文章不能超过32,767个字,不然就得分割开统计)
(如果经常使用,可以给Excel录制宏)
步骤1:统计一个字词、两个字词、三个字词、四个字词……n个字词出现的频率
注:
B3单元格内输入的是目标文章全文
C3是全文字数(含标点符号),D3内容即是C3所用的公式
B6是序号1~序号1276
C6的公式含义为在B3里取目标字符,该目标是从第B6个字符开始,字符长度为1,D6为C6公式内容
E6为统计C6~C1281区间内,C6这个字符出现的频率
为便于显示文末部分,Excel第16行至1269行的内容已隐藏。
如果文章为英文,那更简单,可以将B3内容以空格为分列符号进行分列操作:选中B3,点击菜单[数据]-[分列]-[分隔符号],勾选[空格],完成。完成后单词会按“一个单词占一个单元格”形式列为1行。全选后复制、“选择性粘贴”-“转置”,即可将单词列为上图C列的效果,再同样用F列的公式统计一次即可。
步骤2:将上述统计表格以“选择性张贴”-“粘贴值”形式粘贴到第二张Sheet,对各颜色区域分别作词频降序排序(例:同时选中B4、C4,按Ctrl+Shift+L,对词频降序排序,后同)
步骤3:选中一种颜色区域,作“删除重复项”操作,其余颜色区域操作相同。工具位置见鼠标指针
步骤4:将双字词、三字词、四字词等内容进行人工删选,删去不是词语的部分,忽略词频较少的部分,汇总后即为词频统计结果。
注:由于没有词库,此部分只能人工删选。
如果有词库,可以将上表结果合并成B、C两列(词语、词频两列),再在第三列D粘贴词库,第四列E再作一次countif公式,如:E5=COUNTIF(D:D,B5),统计B5在词库中出现的次数。
E列的结果只有2种:1(B列的词语存在于词库D中),0(B列的词语不存在于词库D中)。
然后对E列结果作筛选,仅显示结果为“1”的内容,隐藏D列,结果就出来了。
方案二,使用工具:汉语词频统计工具
与网上流传的词频统计软件相比,这款比较简单,只能统计中文,但免费。得到统计数据后还需借用Excel排序下。.
创建ADO对象+sql语句
不过首先你的知道数据库的类型和数据表的字段
啥数据库呀,直接导入不是更方便么
由于Sheet2并无具体内容, 故在此只答Sheet1
假设Sheet1 有 200行
姓名是在A2:A201
工作单位是在 B:F列, 假设最多是5列
要一辅助列, 假设是G列
在G2输入公式 =COUNTA(B2:F2)
然后向下拖
G列便会出现曾工作的单位个数
在Sheet3
A2输入 张三; A3输入 李四
在 B2输入公式
=INDEX(Sheet1!$B$2:$F$201,MATCH($A2,Sheet1!$A$2:$A$201),INDEX(Sheet1!$G$2:$G$201,MATCH($A2,Sheet1!$A$2:$A$201),1)-1)
在 C2输入公式 (即B2的公式, 最后的 -1 不要)
=INDEX(Sheet1!$B$2:$F$201,MATCH($A2,Sheet1!$A$2:$A$201),INDEX(Sheet1!$G$2:$G$201,MATCH($A2,Sheet1!$A$2:$A$201),1))
然后将B2:C2, 一齐下拖
如有单元格-名称-定义, 公式会短很多
请测试!
用宏当然一定可以, 但函数已可解决, 故在此不写宏
这比较难做
我想告诉你的是要想一步完成这些事情难
因为你那些单位如何才知道他是你要的
你没有规则是不行了。
你可以把所有单位按重要程度排一下才行 ,不过你单位输入太乱太多也是一件麻烦事儿!!
并不是没有办法做而是太麻烦