excel求助,需求表达不出来,请大神进贴详查
- liboyan123选中—数据—分列
- yangzirong换了个浏览器才把图片和附件传上来,拜托大神解疑
ps:楼上说的分列是搞不定的 - cjzstc只能VBA或者Python了
- oicqgod
复制-》选择性粘贴-》转置 - zhuangpan12抖音关注那几个表哥表姐,还是有干货的
- yangzirong
- oicqgod哦,刚才没看到样表,你这种不规范的格式,编个VBA程序来处理比较合适。
- yangzirong数据不规范真难整,excel简单的我还能弄一弄,VBA 就不行了
- oicqgod
- yangzirong
- fangyu如果确定每本书都是8行的话,直接用rc引用,手动填写两本到右边。剩下的直接智能填充试试?比如r[6i+1]c[1],然后i选一串自然数列
- heavenbow不是8行,有的多个译者。这是个坑表。用excel麻烦
- yxmr复制代码
- Sub restruct()
- Dim i, j, t
- j = 1
- For i = 1 To 200:
- Set B = Range(Cells(j, 1), Cells(2000, 1)).Find("出版时间", LookAt:=xlPart)
- If Not B Is Nothing Then r = B.Row
- Cells(1, 6).Value = "书名"
- Cells(i + 1, 6).Value = Cells(r - 6, 1) '书名
- Cells(1, 7).Value = "作者"
- Set C = Range(Cells(r - 6, 1), Cells(r, 1)).Find("作 者", LookAt:=xlPart)
- If Not C Is Nothing Then Cells(i + 1, 7).Value = C.Value '作者
- Cells(1, 8).Value = "译者"
- Set D = Range(Cells(r - 6, 1), Cells(r, 1)).Find("译 者", LookAt:=xlPart)
- If Not D Is Nothing Then Cells(i + 1, 8).Value = D.Value '译者
- Cells(1, 9).Value = "ISBN"
- Set E = Range(Cells(r - 6, 1), Cells(r, 1)).Find("I S B N", LookAt:=xlPart)
- If Not E Is Nothing Then Cells(i + 1, 9).Value = E.Value 'I S B N
- Cells(1, 10).Value = "定价"
- Set F = Range(Cells(r - 6, 1), Cells(r, 1)).Find("定 价", LookAt:=xlPart)
- If Not F Is Nothing Then Cells(i + 1, 10).Value = F.Value '定价
- Cells(1, 11).Value = "出版社"
- Set G = Range(Cells(r - 6, 1), Cells(r, 1)).Find("出 版 社", LookAt:=xlPart)
- If Not G Is Nothing Then Cells(i + 1, 11).Value = G.Value '出版社
- Cells(1, 12).Value = "出版时间"
- Set H = Range(Cells(r - 6, 1), Cells(r, 1)).Find("出版时间", LookAt:=xlPart)
- If Not H Is Nothing Then Cells(i + 1, 12).Value = H.Value '出版时间
- j = r
- Next i
- End Sub
试试这个,应该能满足你的要求
(有一个bug是我懒得研究怎么判断你到底有多少本书,直接循环了200次,所以最后几十行会重复,要手动删一下 - Sub restruct()
- nostoryboy正则,最快
- songco用公式也行, 反正有规律的, 8行一条数据
- yxmr有的是9行的,多了一行译者
- 花菊mark iOS fly ~
- yegump译者不多的话,筛选译者,全部删除。
2.增加一列1-8重复,直到最后一本书
3.新增加列筛选1,粘贴到新表,筛选2,粘贴,重复到8
4.手工加上译者列 - yangzirong
- yxmr打开你的excel文件,按alt+f11,双击你的sheet,把代码粘贴进去,点运行
- yangzirong
- xhxdbxz白天没空,晚上试试~~
- guoyongyi68mark一下,刚学vba,回头试试
- yangzirong
- 活死人阿過其实我想问下,这个表的来源是哪里,是从什么网页里直接复制过来的吗?
如果是因为直接复制导致格式错乱,那有更简单的办法 - yangzirong
- yxmr在excel里用vba爬虫一步到位也行
- yangzirong
- zzzzzexcel的标准思路是加一列用来判断8行还是九行,类似b9=if(left(a8,4)='出版时间',if(left(b16,4)='出版时间',8,9),''),然后c9=a10 , d9=a12 , e9=if(b9=9, a13,"")。手机上回的没查过excel,可能有点语法错误,大概是这个意思。
- 35chen膜拜,学习
- sakjsak
- 西诺D版这么伟大,这都哪学的呀
- yangzirong
- 1.33我在倒饬把隔壁表的含有某个特定词语的对应的固定列的数值给取出来
搞了半天还没弄明白
似乎要用index和match
比如从http://www.boc.cn/sourcedb/whpj/拉取的外汇数据
我想在另一个sheet里边的某一cell显示美元的现汇卖出价 - 活死人阿過回复27#yangzirong
试试这个:https://it365.gitlab.io/zh-cn/table-to-excel/,看能不能满足需求。还有个叫“后羿采集器”的软件,我今天刚用过,免费版功能就比较多了,字段可以自由设置,分页也能识别,还是不错的。 - oicqgod
- oicqgod
- oicqgod错了,也是野生的,不过是e版培养的。
- sz-hiker为什么你们写代码这么轻松快捷,我是野生的,憋一天才能写几十行,好崇拜你们科班的,排版都很有美感
- oicqgod
- awk小问题 你发百度盘 我给你搞定。专业数据采集
- yxmr本职金融民工,非常野生了
一边百度一边写,唯一追求是能跑通
- yangzirong