ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 466|回复: 7

[已解决] 表格中含有大量文本信息,该如何处理?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-8-9 21:16 | 显示全部楼层 |阅读模式
本帖最后由 周尚宇 于 2023-8-11 20:48 编辑

表格内的B列是系统后台导出的业务具体信息,包含有英文中文。现在需求是B列中提取中文字段再对相同中文字段计数,可有大神指教一二?
举例如下
业务类型 产品名称对象
促销活动远程办理 {"infoList":[{"showName":"商业计划书","value":"2022xx客户福利活动","description":"办理活动当月可获得50MB全国流量(不含港澳台).......
增值产品订购 {"subscribeInfos":[{"offerId":"2000013203","offerName":"互联网电视极清会员","becode":null,"status".......
增值产品订购 {"subscribeInfos":[{"offerid":"2000061532","offername":"自选套餐流量包50元(2022版)"}].......
促销活动远程办理 {"infoList":[{"showName":"商业计划书","value":"0包100分钟高清视频通话包","description":".......


TA的精华主题

TA的得分主题

发表于 2023-8-10 05:20 来自手机 | 显示全部楼层
需要附件,应该就是个解析json的问题

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-8-10 09:32 | 显示全部楼层
wanghan519 发表于 2023-8-10 05:20
需要附件,应该就是个解析json的问题

还请大佬看下,这是部分数据的表格 端内业务量.rar (14.91 KB, 下载次数: 7)

TA的精华主题

TA的得分主题

发表于 2023-8-10 09:46 | 显示全部楼层
解析json之后,是要计数哪些字段,需要的结果是怎样的最好说详细一点
image.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-8-10 10:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wanghan519 发表于 2023-8-10 09:46
解析json之后,是要计数哪些字段,需要的结果是怎样的最好说详细一点

提取{"showName":"活动名称","value":"南通客户福利-50M(1个月)""showName":"0","value":"互联网电视极清会员"这种类型字段,提取中文,相同中文的计数

TA的精华主题

TA的得分主题

发表于 2023-8-10 10:25 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-8-10 10:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
用的系统自带的powershell,因为json解析简单一点

大概意思是,列出所有叶子节点,筛选出含有中文的,分组计数,再写回xlsx

  1. function Get-StringLeafNodes($obj) {
  2.     if ($obj -is [string]) {
  3.         return $obj
  4.     }
  5.     elseif ($obj -is [array]) {
  6.         $leafNodes = @()
  7.         foreach ($item in $obj) {
  8.             $leafNodes += Get-StringLeafNodes $item
  9.         }
  10.         return $leafNodes
  11.     }
  12.     elseif ($obj -is [object]) {
  13.         $leafNodes = @()
  14.         foreach ($property in $obj.PSObject.Properties) {
  15.             $leafNodes += Get-StringLeafNodes $property.Value
  16.         }
  17.         return $leafNodes
  18.     }
  19. }
  20. Import-Excel .\端内业务量.xlsx -NoHeader | Select-Object -ExpandProperty P2 | % {Get-StringLeafNodes (ConvertFrom-Json $_)} | ? {$_ -match '[\p{IsCJKUnifiedIdeographs}]'} | Group-Object | Select-Object -Property Name,Count | Export-Excel .\端内业务量.xlsx -WorksheetName Sheet2
复制代码
image.png

端内业务量.7z

12.67 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2023-8-16 21:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
image.jpg
可以通过JSON函数取每一项的值
var cell=rowcell(me,2) //当前行的第二列
var txt= celltext(rowcell(me,2)) //当前行的第二列文本
var json =JsonParse(celltext(rowcell(me,2)));//将文件转换为json对象
json=(JsonGet(JsonParse(celltext(rowcell(me,2))),"infolist");//获取infolist名字json对象 为一个数组
json=JsonGet(JsonGet(JsonParse(celltext(rowcell(me,2))),"infolist"),0);//取这个数组的第一个对象.从0开始
JsonValue 函数将对象转为常数
=JsonValue(JsonGet(JsonGet(JsonGet(JsonParse(celltext(rowcell(me,2))),"infolist"),0),"value"))
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-27 18:44 , Processed in 0.035856 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表