ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助]如何合并单元格单求和,请各位帮忙!

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-12-28 13:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

不好意思

G1gzSulq.rar (6.81 KB, 下载次数: 9)

不好意思,我再次上传新的

TA的精华主题

TA的得分主题

发表于 2006-12-28 14:26 | 显示全部楼层

"根据有无分店,有N个时,按N-1增加计算卸货点数"
这个要求有难度,因为重名只能算一个,这样要计算分店的个数算法比较麻烦,等于求动态数组中非重复项的个数。

下班再好好想想吧,这两天上班很忙。

TA的精华主题

TA的得分主题

发表于 2006-12-28 14:53 | 显示全部楼层
你的指令单日期是否原本就是序时的,不用排序?最好是这样,否则日期排序都很难

TA的精华主题

TA的得分主题

发表于 2006-12-28 19:08 | 显示全部楼层

用函数+条件格式可实现楼主要求

  oOZZXwo7.rar (5.59 KB, 下载次数: 24)


TA的精华主题

TA的得分主题

 楼主| 发表于 2006-12-28 23:00 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-12-29 10:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

表头的格式是不变的吧,因为排序必须去掉表头及合并单元格,我得确认:

1、格式是否固定.

2、多长时间处理一次这样的业务,或者说,你的这项业务是否跨年度

这两天会计师事务所来年审,甚忙,我抽空再做吧

[此贴子已经被作者于2006-12-29 11:30:52编辑过]

TA的精华主题

TA的得分主题

发表于 2006-12-29 12:57 | 显示全部楼层

可以用VBA解决。以下是代码:

在表1中,把A2:A12命名为shijian,把B2:B12命名为minchen,

         把C2:C12命名为yuanfei,把D2:D12命名为hebin

在表1上,画一按钮,把hong()指定给它。使用时点此按钮,就可执行宏了。

Sub hong()
    Dim MyCount As Integer
   
    Worksheets(1).Activate
    Range("hebin").Select
    With Selection
        .MergeCells = False
        Selection.ClearContents
       
    End With

    Range("d2").Select
    MyCount = 1
    Do Until MyCount = 0
        Selection.FormulaArray = "=SUM(IF(shijian=RC[-3],IF(xinmin=RC[-2],1,0)))"
        MyCount = Selection.Value
        If MyCount > 1 Then
        Selection.FormulaArray = "=SUM(IF((shijian=RC[-3])*(xinmin=RC[-2]),yuanfei,0))"
       
        Selection.Offset(0, 0).Resize(MyCount).Select
        With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
        End With
        Selection.Merge
        Else
        Selection.FormulaArray = "=SUM(IF((shijian=RC[-3])*(xinmin=RC[-2]),yuanfei,0))"
        End If
        Selection.Offset(1, 0).Select
    Loop
    Selection.Offset(-1, 0).Select
    Selection.Clear
    tongcen
End Sub

Sub tongcen()
    
    Dim MyCount As Integer
   
    Worksheets(1).Activate
    Range("e2").Select
    MyCount = 1
    Do Until MyCount = 0
        Selection.FormulaArray = "=SUM(IF(shijian=RC[-4],IF(xinmin=RC[-3],1,0)))"
        MyCount = Selection.Value
            For x = 1 To MyCount
               If x > 1 Then
                    Selection.Formula = 25
                    Selection.Offset(1, 0).Select
               Else
                    Selection.Formula = 0
                    Selection.Offset(1, 0).Select
              
               End If
            Next
       
    Loop
    Selection.Clear
   
End Sub

TA的精华主题

TA的得分主题

发表于 2006-12-30 09:22 | 显示全部楼层

新要求算法昨晚2点搞定,看附件。

jdJvOc3O.rar (26.16 KB, 下载次数: 21)
[此贴子已经被作者于2006-12-30 9:25:43编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-12-30 13:06 | 显示全部楼层

辛苦您好!

clark大师辛苦了,为了这事儿工作到晚上两点,实在让人肃然起敬,佩服佩服!!

本人仍就这个问题想问一下,如果再加一个条件,即:

表格结构如上,要求:

1、结算体积这一列,根据日期、客户名称判断是否合并单元格,

如日期和客户名相同时则合并单元格求和

少于3按3列示,大于3按实际数列示

2、根据有无分店,有N个时,按N-1增加计算卸货点数

3.如日期相同,分店大于3个,则前3个分店为一组,少于3个方按3个方计算体积

和运费,后面卸货点为N-1,

以此类推

如果后面分店数少于3个,体积少于3个方按3个方算,增加卸货点按N-1计算

那又怎么解决呢?我运行大师的程序得出来的结果是这样子的

 



[此贴子已经被作者于2006-12-30 13:13:32编辑过]

辛苦您好!

辛苦您好!

辛苦您好!

辛苦您好!

TA的精华主题

TA的得分主题

发表于 2006-12-30 13:48 | 显示全部楼层

如果有8个分店,是分成3个+3个+2个,还是3个+5个?

为什么要这么合并?有特殊需要[em09]

还有什么具体要求你一次说清楚,以便编写代码,否则,重复修改代码很麻烦,

[此贴子已经被作者于2006-12-30 17:33:18编辑过]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 23:47 , Processed in 0.043726 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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