一个Excel问题的三种解法,你会哪个?
【一个Excel问题的三种解法,你会哪个?】我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能 , 让职场人士能高效使用office为其服务 。 支持我 , 也为自己加油!
这是今天一位群友的问题:
下面例举三种解决办法 , 看看你会哪种呢?
第一种:函数法
先简单整理下数据 , 整理出红框部分的数据 。
把原表中A、B两列数据合并 , 去除重复值 , 然后再用countifs函数求出E列中每个单元格出现的次数 , 然后对A列数据进行去重复得到H列数据 , 最后在I列写公式得到想要的结果 。
I2中公式如下:
=H2&TEXTJOIN(",",1,IF(IFERROR(FIND(H2,$E$2:$E$13),0),$G$2:$G$13,""))
公式很好理解:在E列查找一个编号 , 如果E列的文本中包含该编号 , 就显示G列对应的值 , 否则就显示空 。 具体以I2中的公式为例说下 , 选中公式中的IF段 , 按F9 , 即可得到包含编号2245对应的类型及数量:
我们只需要合并IF段的结果就可以了 , 所以用TEXTJOIN函数 。
第二种:PQ法
如果你对函数的嵌套用法实在无法理解 , 强烈建议学习下PowerQuery课程 , 先演示下最终效果:
原数据更新后 , 在查询表中刷新下 , 结果也会实时更新 。
具体做法步骤如下:
1)、先把数据导入到PQ中
2)、编号和型号合并
3)、按编号和型号进行分组
4)、添加自定义列把型号、数量合并后再加个“个”字
5)、把不需要的列删除 , 只留下下面两列 。 
6)、按编号进行分组并提取Table中的自定义列 。 
7)、得到如下结果:
8)、提取List中的值 , 用逗号分隔 , 即可得到结果:
9)、编号和自定义列合并稍加调整查询即想要的结果:
看着步骤很多 , 其实都是基础操作 , 一气呵成的话速度是很快的 。
办法三:VBA
效果如下:
代码如下:
SubTQDimdAsObject,i%,arr,brr,crrSetd=CreateObject("scripting.dictionary")Setd1=CreateObject("scripting.dictionary")arr=Range("a2",[b2].End(4))Fori=1ToUBound(arr)Ifd.exists(arr(i,1)&""&arr(i,2))Thend(arr(i,1)&""&arr(i,2))=d(arr(i,1)&""&arr(i,2))+1Elsed(arr(i,1)&""&arr(i,2))=1EndIfNextbrr=d.keyscrr=d.itemsFori=0ToUBound(brr)Ifd1.exists(Split(brr(i),"")(0))Thend1(Split(brr(i),"")(0))=d1(Split(brr(i),"")(0))&","&Split(brr(i),"")(1)&crr(i)&"个"Elsed1(Split(brr(i),"")(0))=Split(brr(i),"")(0)&Split(brr(i),"")(1)&crr(i)&"个"EndIfNext[c2].Resize(d1.Count)=Application.Transpose(d1.items)EndSub
- 领军企业|30个!中国科协发布2022年科技领域重大问题难题
- 阿里巴巴|电商转折点出现?神秘消失23天的李佳琦,意外暴露了阿里的问题
- |串口通信问题排查指南
- 物联网|微信iOS版8.0.24正式发布:iOS16闪退问题已解决,并有新功能
- 云厂商为什么都在冲这个KPI?
- 据上海证券报消息|舒适度超埃尔法 华为、小康打造的问界M7智能豪车7月4日发布
- |买手机别抠搜,4款目前口碑最好的旗舰手机,用个三五年不成问题
- c语言|负责任地推荐这3部手机,好看又配置强,用到2026年不成问题
- 蓝牙AOA定位那点事系列085:如何应对第一次合作软件开发合作伙伴的问题和需求
- 人口|马斯克:美国或跟日本一样 不解决生育问题将会彻底消失
