ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 976190982

[求助] 合并单元格降序排序 求助

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-6-20 18:20 来自手机 | 显示全部楼层
呵呵                  

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-6-20 18:36 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-6-20 18:56 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
值得学习,果断收藏。

TA的精华主题

TA的得分主题

发表于 2020-6-20 19:05 | 显示全部楼层
  1. # -*- coding: utf-8 -*-
  2. # version: Python 3.7.0
  3. import pandas as pd

  4. df = pd.read_excel('./求助.xlsx',sheet_name='代发',usecols=["货品编号","规格名称","库存","数量","图片链接"])
  5. df['数量2']=df['数量'].fillna(method='ffill')
  6. df.sort_values('数量2',ascending=False,kind='mergesort',inplace=True)
  7. df.loc[:,'货品编号':'图片链接'].to_excel('./排序后.xlsx',index=False)
复制代码


排序后.rar

63.09 KB, 下载次数: 30

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-6-20 19:19 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
976190982 发表于 2020-6-20 18:36
噢哟    有故事?

我的意思,没啥难度!呵呵

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-6-20 19:32 | 显示全部楼层

谢谢   非常感谢    居然是 Python    这个论坛都是高手啊     谢谢

TA的精华主题

TA的得分主题

发表于 2020-6-20 22:04 | 显示全部楼层
原始数据不要这样设计,这是报表形式,在报表中进行排序,无疑是自讨苦吃,给自己找麻烦.

TA的精华主题

TA的得分主题

发表于 2020-6-21 10:49 | 显示全部楼层
  1. Sub test()
  2.   Dim r%, i%, m5
  3.   Dim arr(), brr
  4.   Application.ScreenUpdating = False
  5.   Application.DisplayAlerts = False
  6.   With Worksheets("代发")
  7.     r = .Cells(.Rows.Count, 2).End(xlUp).Row
  8.     m = 0
  9.     For i = 2 To r
  10.       If .Cells(i, 1).MergeArea.Cells(1, 1).Address = .Cells(i, 1).Address Then
  11.         m = m + 1
  12.         ReDim Preserve arr(1 To 3, 1 To m)
  13.         arr(1, m) = i
  14.         arr(2, m) = .Cells(i, 1).MergeArea.Rows.Count
  15.         arr(3, m) = .Cells(i, 4).Value
  16.       End If
  17.     Next
  18.     For i = 1 To UBound(arr, 2) - 1
  19.       p = i
  20.       For j = i + 1 To UBound(arr, 2)
  21.         If arr(3, p) < arr(3, j) Then
  22.           p = j
  23.         End If
  24.       Next
  25.       If p <> i Then
  26.         For k = 1 To UBound(arr)
  27.           temp = arr(k, i)
  28.           arr(k, i) = arr(k, p)
  29.           arr(k, p) = temp
  30.         Next
  31.       End If
  32.     Next
  33.     i1 = r + 1
  34.     For k = 1 To UBound(arr, 2)
  35.       .Cells(arr(1, k), 1).Resize(arr(2, k), 5).Copy .Cells(i1, 1)
  36.       i1 = i1 + arr(2, k)
  37.     Next
  38.     .Range("a2:e" & r).Delete shift:=xlUp
  39.   End With
  40.   Application.ScreenUpdating = True
  41.   MsgBox "排序完毕!"
  42. End Sub
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-6-21 10:50 | 显示全部楼层
详见附件。

求助.rar

168.41 KB, 下载次数: 57

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-6-21 11:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
用了ExcelSpice,只需3行代码:
Sub Sort1()
    Dim sp As New ExcelSpice
    sp.Link "求助", FillEm:="ffill >> : "
    sp.Sort("数量").FetchAll ThisWorkbook.Sheets("Sheet1").Cells(1, 1)
End Sub

'如果原始数据<求助.xlsx>不打开,要求和<Analyse.xlsm>放在同一文件夹;
'结果输出在Analyse.xlsm的Sheet1。

附件含ExcelSpice类模块.rar

270.89 KB, 下载次数: 44

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-20 04:22 , Processed in 0.046219 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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