6金币求助,怎么用excel或者wps合并重复数据(并且加总求和)

这是税务电子网站下载的表格,实在没法看下去,如下图所示



想请问各位大神,怎么合并和加总数据?
例如上图的发票001,甲公司的,系统却把它分成了3份,分别是100元的玉米,300元的菜油,200元的花生。
明明是一张发票,却分成3份,我想做成以下的,图片二的格式,如下:



以发票号码为准,相同的发票号码都合并在一起(不能以甲公司为准,因为甲公司可能开了很多张不同的发票),例如,发票号码001的3个甲公司合并在一起了,金额也合并成了600元,最最最重要的是,货物那里,也合并成了“玉米,菜油,花生”。这样合并后,简直是一目了然啊。看起来也舒服多了,做数据也十分方便。

(如果货物那里,无法加总成“玉米,菜油,花生”,至少也要显示“玉米”啊,“菜油”这样子,要不然,合并后,货物那里没法看到数据,也太痛苦了)

还有,弄成图片二的格式后,数据可以复制黏贴的吧?

请问各位大神,用excel或wps怎么操作?(如果这个合并功能是wps付年费的话,就算了哈,这里是jsl,当然是用最优惠的方式达到这个功能哈)

小小心意,6金币奉上,先到先得。答得好的,可以重复打赏哈。谢谢各位大神
发表时间 2023-08-24 17:40     最后修改时间 2023-08-24 17:58     来自广东

赞同来自: 陈祥B

0

tony6759

赞同来自:

@tony6759
图1设置辅助列、图2删除空白行,筛选唯一发票号码,图3根据号码合并发票内容,详细看截图公式

其他列就是单一查询函数、条件合计sumifs就不截图了,仅供参考
图1、图2分两步提取A列唯一值,即发票号,适用低版本excel

如果是2019以上版本,可以用下面这个函数直接提取发票号,不涉及数组公式,数据量大时减少卡顿,其实时间节约不了多少,但影响心情:)

=UNIQUE(A2:A100)
2023-08-31 11:29 来自北京 引用
0

Hady

赞同来自:

很简单的问题,把基础表格数据发上来吧,给你搞个数据透视,后面就是刷新就解决了。
2023-08-28 12:09 来自福建 引用
0

tuoersitai

赞同来自:

难度主要是分别得到新的两列,1是根据原D列合并文字描述、2是根据原E列合并数值。
新的F列:
=TEXTJOIN(", ", TRUE, IF(A2:A999=A2, D2:D999, ""))
新的G列:
=SUMIF(A2:A999, A2, E2:E999)
2023-08-28 11:24 来自北京 引用
0

scientificbo

赞同来自:

@Duckruck
ChatGPT写的这个宏(大体方向上)正确吗?
以下是一个VBA宏,可以帮助您合并相同发票号码的数据:
该宏首先会根据发票号码排序数据。
然后,它将合并相同发票号码的金额,并将其货物合并为一个逗号分隔的列表。
最后,它将删除重复的发票号码行。
以下是VBA宏代码:
vba
Copy code
Sub MergeData()
Dim LastRow As Long
Dim i As ...
我好奇你怎么向gpt描述清楚这个问题的?直接把楼主的文字和图片发上去吗?
2023-08-28 10:38 来自广东 引用
1

Hady

赞同来自: boeing767

一个数据透视最简单了,还能各种统计。
2023-08-25 13:48 来自福建 引用
0

挥着镰刀的小哥

赞同来自:

这个简单哦,用awk处理。

1.按照相同的key拼接字符串
假定存在两列,列1是key 发票号码,列2是value 内容。
awk '{key=1;1="";value=$0;sum[key]=sum[key]""value} END {for (i in sum) print i,sum[i]}' file

2.按照相同的key累加值
假定存在两列,列1是key 发票号码,列2是value 金额。
awk '{a[1]+=2}END{for(i in a) printf "%s\t %d \t \n",i,a[i] }' file
2023-08-25 12:58修改 来自河南 引用
1

水龙啊

赞同来自: Duckruck

感谢各位大神,因为我今天有事出外旅游了,我先对大部分的留言,进行了打赏,等我几天后回来,用电脑测试一下,我会再对第一个适合我的留言再补回5金币,当然,好的留言,我也会继续追加打赏。谢谢各位大神。
2023-08-25 11:51 来自广东 引用
0

feichai

赞同来自:

@tony6759
图1设置辅助列、图2删除空白行,筛选唯一发票号码,图3根据号码合并发票内容,详细看截图公式其他列就是单一查询函数、条件合计sumifs就不截图了,仅供参考
高手,但我猜他/她最需要的是你给讲讲sumifs
2023-08-24 23:14 来自陕西 引用
0

合格境内投资者 - 好运气不会一直眷顾你,好习惯会一生伴着你,坚持好习惯,等待好运气。

赞同来自:

分类汇总、数据透视表都能满足需求,函数也能办就是麻烦点
2023-08-24 22:13 来自山东 引用
4

tony6759

赞同来自: qiuwen777 水龙啊 feichai sulf666

图1设置辅助列、图2删除空白行,筛选唯一发票号码,图3根据号码合并发票内容,详细看截图公式

其他列就是单一查询函数、条件合计sumifs就不截图了,仅供参考





2023-08-24 21:53修改 来自北京 引用
0

Duckruck

赞同来自:

@scott
这个用函数比较复杂,如果可以用VBA的话,应该比较简单
ChatGPT写的这个宏(大体方向上)正确吗?

以下是一个VBA宏,可以帮助您合并相同发票号码的数据:

该宏首先会根据发票号码排序数据。
然后,它将合并相同发票号码的金额,并将其货物合并为一个逗号分隔的列表。
最后,它将删除重复的发票号码行。
以下是VBA宏代码:

vba
Copy code
Sub MergeData()
Dim LastRow As Long
Dim i As Long
Dim SumAmt As Double
Dim GoodsList As String

' Sort data by Invoice Number
Range("A1").CurrentRegion.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes

' Find the last row with data
LastRow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To LastRow
' Check if the invoice number is the same as the next row
If Cells(i, 1).Value = Cells(i + 1, 1).Value Then
' Sum the amounts
SumAmt = Cells(i, 3).Value
GoodsList = Cells(i, 4).Value

' Loop until a different invoice number is found
Do While Cells(i, 1).Value = Cells(i + 1, 1).Value
SumAmt = SumAmt + Cells(i + 1, 3).Value
GoodsList = GoodsList & ", " & Cells(i + 1, 4).Value
Rows(i + 1).Delete
Loop

' Update the amount and goods list
Cells(i, 3).Value = SumAmt
Cells(i, 4).Value = GoodsList
End If
Next i
End Sub
如何使用:

打开Excel或WPS,并打开您的数据工作簿。
按下 Alt + F11 打开VBA编辑器。
在VBA编辑器中,插入一个新的模块(点击插入 -> 模块)。
将上述代码复制并粘贴到新模块窗口中。
关闭VBA编辑器。
在Excel中,按下 Alt + F8,选择 MergeData 然后点击 运行。
您的数据现在应该已经按照您的要求合并了。
注意:在运行任何宏之前,建议备份您的数据,以防万一出现问题。
2023-08-24 21:46 来自澳大利亚 引用
0

flyingowl - 权益-比固守+靠谱

赞同来自:

方法好几个,但是透视表更加简单明了。分类、汇总一表搞定。
2023-08-24 21:36 来自北京 引用
0

scott

赞同来自:

这个用函数比较复杂,如果可以用VBA的话,应该比较简单
2023-08-24 21:21 来自四川 引用
0

水龙啊

赞同来自:

@ln88
具体怎么做记不得了,只能告诉你用过滤功能
请问怎么使用这个过滤功能
2023-08-24 21:11 来自广东 引用
0

liouzone

赞同来自:

透视表一般不能处理文本拼接,我发个曲线救国版本。
先把数据按发票号码排序,贴到我附件的左边,然后看看公式就知道怎么用了。
2023-08-24 21:11 来自上海 引用
0

水龙啊

赞同来自:

@dingo49
数据透视表了解下。
这个是app吗
2023-08-24 21:11 来自广东 引用
0

Duckruck

赞同来自:

买ChatGPT的会员,用code interpreter帮你做

顺带还可以跟着他学下编码技能
2023-08-24 20:55 来自澳大利亚 引用
0

眼里的星星

赞同来自:

利用透视表按发票号、购买方、开票日期可以做金额的求和,然后再用vlookup公式链接透视表中同发票号、购买方、开票日期的货物名称就可以达到楼主你要的基本效果了。
2023-08-24 20:32 来自江苏 引用
0

sulf666

赞同来自:

用sumifs求和金额,然后玉米菜油花生这种文字,用if函数,if这行的发票编号和上一行的编号一样,就输出 玉米&","&菜油,最后排个序,用vlookup 把同一发票编号且长度最长的玉米菜油花生匹配出来,就可以了
2023-08-24 20:05 来自浙江 引用
0

dingo49

赞同来自:

数据透视表了解下。
2023-08-24 19:47 来自四川 引用
0

ln88

赞同来自:

具体怎么做记不得了,只能告诉你用过滤功能
2023-08-24 19:39 来自江苏 引用
1

钱书名

赞同来自: 热爱我的热爱

sumif或sumifs语句,楼主可以百度下用法
2023-08-24 18:43 来自上海 引用

要回复问题请先登录注册

发起人

问题状态

  • 最新活动: 2023-08-31 11:29
  • 浏览: 4604
  • 关注: 21