查看: 1068|回复: 17|关注: 0

[已解决] 将excel表中不符合条件的数据删除,并输出

[复制链接]

新手

8 麦片

财富积分


050


4

主题

25

帖子

0

最佳答案
如下图所示,将表格中数据导入matlab中,首先将返工次一列中为1及2对应行的所有的数据删除,然后将料号一列中料号相同的进行合并,并计算它们的出站数量之和,最后将结果输出到excel表格中。求帮助,万分感谢。
原数据.PNG

新手

24 麦片

财富积分


050


29

主题

583

帖子

3

最佳答案
  • 关注者: 2
发表于 2019-1-3 20:47:01 | 显示全部楼层
使用excle就可以完成?

新手

8 麦片

财富积分


050


4

主题

25

帖子

0

最佳答案
 楼主| 发表于 2019-1-3 20:48:56 | 显示全部楼层
是可以的,我这是举例,其实数据量特别大,谢谢您

新手

8 麦片

财富积分


050


4

主题

25

帖子

0

最佳答案
 楼主| 发表于 2019-1-3 20:50:36 | 显示全部楼层
java125 发表于 2019-1-3 20:47
使用excle就可以完成?

请问,运用matlab您有什么好办法吗

论坛优秀回答者

权威

3211 麦片

财富积分



2

主题

3501

帖子

721

最佳答案
  • 关注者: 148
发表于 2019-1-3 22:49:09 | 显示全部楼层
本帖最后由 maple1314168 于 2019-1-3 23:19 编辑
lyxgood 发表于 2019-1-3 20:50
请问,运用matlab您有什么好办法吗

1、xlsread直接导入数据。列名字那行可以不要。
2、因为导入(N)的那行,matlab显示为NaN,用isnan,找到行号,提取。
3、用table函数转换数据,用groupsummary(R2018a以上才有,类似excel的汇总功能)命令计算
     旧一点的版本 用  findgroups与splitapply(2015b以上)
     再旧 用 unique 与 accumarray
4、写入新的excel表格。

新手

8 麦片

财富积分


050


4

主题

25

帖子

0

最佳答案
 楼主| 发表于 2019-1-4 07:38:03 | 显示全部楼层
maple1314168 发表于 2019-1-3 22:49
1、xlsread直接导入数据。列名字那行可以不要。
2、因为导入(N)的那行,matlab显示为NaN,用isnan,找到 ...

谢谢您的解答,刚接触matlab的小白,您可以将代码大致写下吗,万分感谢

论坛优秀回答者

权威

3211 麦片

财富积分



2

主题

3501

帖子

721

最佳答案
  • 关注者: 148
发表于 2019-1-4 08:25:46 | 显示全部楼层
lyxgood 发表于 2019-1-4 07:38
谢谢您的解答,刚接触matlab的小白,您可以将代码大致写下吗,万分感谢

有看我的贴吗?
我都贴了这么多的函数,有查看吗???
如果只是想得到结果的话,发你excel上来,帮你写完再发给你。

新手

8 麦片

财富积分


050


4

主题

25

帖子

0

最佳答案
 楼主| 发表于 2019-1-4 19:27:37 | 显示全部楼层
maple1314168 发表于 2019-1-4 08:25
有看我的贴吗?
我都贴了这么多的函数,有查看吗???
如果只是想得到结果的话,发你excel上来,帮你写 ...

       您好!谢谢您的耐心解答。您发的函数我都看到了,它对应的功能也都了解,但将它们串起来解决问题还是完成不了,烦请您写下代码,参考学习一下,谢谢您。       excel数据请见附件。excel表中其实需要的就是三列数据,分别为:料号、出站数及是否线上重工是否线上重工那一列需要将数据为1、2和3对应的行数据删除,即只留下N及其对应的数据。然后,将剩下的数据根据料号将相同的和并在一起,统计相同料号出站总数量。最后,以excel表格形式输出计算结果。  另附加excel表中有对应的所有料号。 数据.xlsx (92.25 KB, 下载次数: 9)

论坛优秀回答者

权威

3211 麦片

财富积分



2

主题

3501

帖子

721

最佳答案
  • 关注者: 148
发表于 2019-1-4 21:42:37 | 显示全部楼层 |此回复为最佳答案
lyxgood 发表于 2019-1-4 19:27
您好!谢谢您的耐心解答。您发的函数我都看到了,它对应的功能也都了解,但将它们串起来解决问题 ...

只有18个不同的,放在你的第三个表格。
文件名改为1234.xlsx

  1. [~,~,C]=xlsread('1234.xlsx','C3:C1082');
  2. G=xlsread('1234.xlsx','G3:G1082');
  3. K=xlsread('1234.xlsx','K3:K1082');
  4. ind=isnan(K);C=C(ind);G=G(ind);
  5. [IA,~,IC]=unique(C);
  6. result=accumarray(IC,G);
  7. xlswrite('1234.xlsx',{'料号','进站数'},3,'A1');
  8. xlswrite('1234.xlsx',IA,3,'A2');
  9. xlswrite('1234.xlsx',result,3,'B2');
复制代码


料号                                      进站数
JFCPH4C265091100L00T01         675
JFCPH4C265091100N00001         550
JFCPH4C265091100N0000X         450
JFCPJ4C265091100N00001          950
JFCPM4C265091100SB8001        3325
JFCPM4C265091100XB8001        5471
JFCPT4C265091100N00001        2225
JFCPT4C265091100N0000X        325
JFCPT4C265091100N00091        5100
JFCPT4C265092100N00001        350
JFCPT4C272091100L00T01        400
JFCPT4C272091100L00T0Y        1125
JFCPT4C272091100N00001        1540
JFCTG4C265091100N00001        350
JFCTH4C265091100N00001        200
JFCTH4C265091100N0000X        175
JFCTH4C265091130N00001        175
JFCTX4C265091100N00001        50

新手

8 麦片

财富积分


050


4

主题

25

帖子

0

最佳答案
 楼主| 发表于 2019-1-5 15:20:23 | 显示全部楼层
maple1314168 发表于 2019-1-4 21:42
只有18个不同的,放在你的第三个表格。
文件名改为1234.xlsx

您好!谢谢您。我发现了个问题,这行代码K=xlsread('1234.xlsx','K3:K1082')提取第k列数据所得结果与excel表格这列的数据对不上,请问这是什么原因
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

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