分类: 学习资料
-
中国社会各阶级的分析
中国社会各阶级的分析
(一九二五年十二月一日)
毛泽东此文是为反对当时党内存在着的两种倾向而写的。当时党内的第一种倾向,以陈独秀为代表,只注意同国民党合作,忘记了农民,这是右倾机会主义。第二种倾向,以张国焘为代表,只注意工人运动,同样忘记了农民,这是“左”倾机会主义。这两种机会主义都感觉自己力量不足,而不知道到何处去寻找力量,到何处去取得广大的同盟军。毛泽东指出中国无产阶级的最广大和最忠实的同盟军是农民,这样就解决了中国革命中的最主要的同盟军问题。毛泽东并且预见到当时的民族资产阶级是一个动摇的阶级,他们在革命高涨时将要分化,其右翼将要跑到帝国主义方面去。一九二七年所发生的事变,证明了这一点。
谁是我们的敌人?谁是我们的朋友?这个问题是革命的首要问题。中国过去一切革命斗争成效甚少,其基本原因就是因为不能团结真正的朋友,以攻击真正的敌人。革命党是群众的向导,在革命中未有革命党领错了路而革命不失败的。我们的革命要有不领错路和一定成功的把握,不可不注意团结我们的真正的朋友,以攻击我们的真正的敌人。我们要分辨真正的敌友,不可不将中国社会各阶级的经济地位及其对于革命的态度,作一个大概的分析。
中国社会各阶级的情况是怎样的呢?
地主阶级和买办阶级。在经济落后的半殖民地的中国,地主阶级和买办阶级完全是国际资产阶级的附庸,其生存和发展,是附属于帝国主义的。这些阶级代表中国最落后的和最反动的生产关系,阻碍中国生产力的发展。他们和中国革命的目的完全不兼容。特别是大地主阶级和大买办阶级,他们始终站在帝国主义一边,是极端的反革命派。其政治代表是国家主义派1和国民党右派。
中产阶级。这个阶级代表中国城乡资本主义的生产关系。中产阶级主要是指民族资产阶级,他们对于中国革命具有矛盾的态度:他们在受外资打击、军阀压迫感觉痛苦时,需要革命,赞成反帝国主义反军阀的革命运动;但是当着革命在国内有本国无产阶级的勇猛参加,在国外有国际无产阶级的积极援助,对于其欲达到大资产阶级地位的阶级的发展感觉到威胁时,他们又怀疑革命。其政治主张为实现民族资产阶级一阶级统治的国家。有一个自称为戴季陶2“真实信徒”的,在北京《晨报》3上发表议论说:“举起你的左手打倒帝国主义,举起你的右手打倒共产党。”这两句话,画出了这个阶级的矛盾惶遽状态。他们反对以阶级斗争学说解释国民党的民生主义,他们反对国民党联俄和容纳共产党4及左派分子。但是这个阶级的企图——实现民族资产阶级统治的国家,是完全行不通的,因为现在世界上的局面,是革命和反革命两大势力作最后斗争的局面。这两大势力竖起了两面大旗:一面是红色的革命的大旗,第三国际5高举着,号召全世界一切被压迫阶级集合于其旗帜之下;一面是白色的反革命的大旗,国际联盟6高举着,号召全世界一切反革命分子集合于其旗帜之下。那些中间阶级,必定很快地分化,或者向左跑入革命派,或者向右跑入反革命派,没有他们“独立”的余地。所以,中国的中产阶级,以其本阶级为主体的“独立”革命思想,仅仅是一个幻想。
小资产阶级。如自耕农7,手工业主,小知识阶层——学生界、中小学教员、小员司、小事务员、小律师,小商人等都属于这一类。这一个阶级,在人数上,在阶级性上,都值得大大注意。自耕农和手工业主所经营的,都是小生产的经济。这个小资产阶级内的各阶层虽然同处在小资产阶级经济地位,但有三个不同的部分。第一部分是有余钱剩米的,即用其体力或脑力劳动所得,除自给外,每年有余剩。这种人发财观念极重,对赵公元帅礼拜最勤,虽不妄想发大财,却总想爬上中产阶级地位。他们看见那些受人尊敬的小财东,往往垂着一尺长的涎水。这种人胆子小,他们怕官,也有点怕革命。因为他们的经济地位和中产阶级颇接近,故对于中产阶级的宣传颇相信,对于革命取怀疑的态度。这一部分人在小资产阶级中占少数,是小资产阶级的右翼。第二部分是在经济上大体上可以自给的。这一部分人比较第一部分人大不相同,他们也想发财,但是赵公元帅8总不让他们发财,而且因为近年以来帝国主义、军阀、封建地主、买办大资产阶级的压迫和剥削,他们感觉现在的世界已经不是从前的世界。他们觉得现在如果只使用和从前相等的劳动,就会不能维持生活。必须增加劳动时间,每天起早散晚,对于职业加倍注意,方能维持生活。他们有点骂人了,骂洋人叫“洋鬼子”,骂军阀叫“抢钱司令”,骂土豪劣绅叫“为富不仁”。对于反帝国主义反军阀的运动,仅怀疑其未必成功(理由是:洋人和军阀的来头那么大),不肯贸然参加,取了中立的态度,但是绝不反对革命。这一部分人数甚多,大概占小资产阶级的一半。第三部分是生活下降的。这一部分人好些大概原先是所谓殷实人家,渐渐变得仅仅可以保住,渐渐变得生活下降了。他们每逢年终结账一次,就吃惊一次,说:“咳,又亏了!”这种人因为他们过去过着好日子,后来逐年下降,负债渐多,渐次过着凄凉的日子,“瞻念前途,不寒而栗”。这种人在精神上感觉的痛苦很大,因为他们有一个从前和现在相反的比较。这种人在革命运动中颇要紧,是一个数量不小的群众,是小资产阶级的左翼。以上所说小资产阶级的三部分,对于革命的态度,在平时各不相同;但到战时,即到革命潮流高涨、可以看得见胜利的曙光时,不但小资产阶级的左派参加革命,中派亦可参加革命,即右派分子受了无产阶级和小资产阶级左派的革命大潮所裹挟,也只得附和着革命。我们从一九二五年的五卅运动9和各地农民运动的经验看来,这个断定是不错的。
半无产阶级。此处所谓半无产阶级,包含:(一)绝大部分半自耕农10,(二)贫农,(三)小手工业者,(四)店员11,(五)小贩等五种。绝大部分半自耕农和贫农是农村中一个数量极大的群众。所谓农民问题,主要就是他们的问题。半自耕农、贫农和小手工业者所经营的,都是更细小的小生产的经济。绝大部分半自耕农和贫农虽同属半无产阶级,但其经济状况仍有上、中、下三个细别。半自耕农,其生活苦于自耕农,因其食粮每年大约有一半不够,须租别人田地,或者出卖一部分劳动力,或经营小商,以资弥补。春夏之间,青黄不接,高利向别人借债,重价向别人籴粮,较之自耕农的无求于人,自然景遇要苦,但是优于贫农。因为贫农无土地,每年耕种只得收获之一半或不足一半;半自耕农则租于别人的部分虽只收获一半或不足一半,然自有的部分却可全得。故半自耕农的革命性优于自耕农而不及贫农。贫农是农村中的佃农,受地主的剥削。其经济地位又分两部分。一部分贫农有比较充足的农具和相当数量的资金。此种农民,每年劳动结果,自己可得一半。不足部分,可以种杂粮、捞鱼虾、饲鸡豕,或出卖一部分劳动力,勉强维持生活,于艰难竭蹶之中,存聊以卒岁之想。故其生活苦于半自耕农,然较另一部分贫农为优。其革命性,则优于半自耕农而不及另一部分贫农。所谓另一部分贫农,则既无充足的农具,又无资金,肥料不足,土地歉收,送租之外,所得无几,更需要出卖一部分劳动力。荒时暴月,向亲友乞哀告怜,借得几斗几升,敷衍三日五日,债务丛集,如牛负重。他们是农民中极艰苦者,极易接受革命的宣传。小手工业者所以称为半无产阶级,是因为他们虽然自有简单的生产手段,且系一种自由职业,但他们也常常被迫出卖一部分劳动力,其经济地位略与农村中的贫农相当。因其家庭负担之重,工资和生活费用之不相称,时有贫困的压迫和失业的恐慌,和贫农亦大致相同。店员是商店的雇员,以微薄的薪资,供家庭的费用,物价年年增长,薪给往往须数年一增,偶与此辈倾谈,便见叫苦不迭。其地位和贫农及小手工业者不相上下,对于革命宣传极易接受。小贩不论肩挑叫卖,或街畔摊售,总之本小利微,吃着不够。其地位和贫农不相上下,其需要一个变更现状的革命,也和贫农相同。
无产阶级。现代工业无产阶级约二百万人。中国因经济落后,故现代工业无产阶级人数不多。二百万左右的产业工人中,主要为铁路、矿山、海运、纺织、造船五种产业的工人,而其中很大一个数量是在外资产业的奴役下。工业无产阶级人数虽不多,却是中国新的生产力的代表者,是近代中国最进步的阶级,做了革命运动的领导力量。我们看四年以来的罢工运动,如海员罢工12、铁路罢工13、开滦和焦作煤矿罢工[14、沙面罢工15以及“五卅”后上海香港两处的大罢工16所表现的力量,就可知工业无产阶级在中国革命中所处地位的重要。他们所以能如此,第一个原因是集中。无论哪种人都不如他们的集中。第二个原因是经济地位低下。他们失了生产手段,剩下两手,绝了发财的望,又受着帝国主义、军阀、资产阶级的极残酷的待遇,所以他们特别能战斗。都市苦力工人的力量也很可注意。以码头搬运夫和人力车夫占多数,粪夫清道夫等亦属于这一类。他们除双手外,别无长物,其经济地位和产业工人相似,惟不及产业工人的集中和在生产上的重要。中国尚少新式的资本主义的农业。所谓农村无产阶级,是指长工、月工、零工等雇农而言。此等雇农不仅无土地,无农具,又无丝毫资金,只得营工度日。其劳动时间之长,工资之少,待遇之薄,职业之不安定,超过其它工人。此种人在乡村中是最感困难者,在农民运动中和贫农处于同一紧要的地位。
此外,还有数量不小的游民无产者,为失了土地的农民和失了工作机会的手工业工人。他们是人类生活中最不安定者。他们在各地都有秘密组织,如闽粤的“三合会”,湘鄂黔蜀的“哥老会”,皖豫鲁等省的“大刀会”,直隶及东三省的“在理会”,上海等处的“青帮”17,都曾经是他们的政治和经济斗争的互助团体。处置这一批人,是中国的困难的问题之一。这一批人很能勇敢奋斗,但有破坏性,如引导得法,可以变成一种革命力量。
综上所述,可知一切勾结帝国主义的军阀、官僚、买办阶级、大地主阶级以及附属于他们的一部分反动知识界,是我们的敌人。工业无产阶级是我们革命的领导力量。一切半无产阶级、小资产阶级,是我们最接近的朋友。那动摇不定的中产阶级,其右翼可能是我们的敌人,其左翼可能是我们的朋友——但我们要时常提防他们,不要让他们扰乱了我们的阵线。
注释
-
国家主义派指中国青年党,当时以其外围组织“中国国家主义青年团”的名义公开进行活动。组织这个政团的是一些反动政客,他们投靠帝国主义和当权的反动派,把反对中国共产党和苏联当作职业。 ↩
-
戴季陶(一八九一——一九四九),又名传贤,原籍浙江湖州,生于四川广汉。早年参加中国同盟会,从事过反对清政府和袁世凯的活动。后曾和蒋介石在上海共同经营交易所的投机事业。一九二五年随着孙中山的逝世和革命高潮的到来,他歪曲孙中山学说的革命内容,散布反对国共合作、反对工农革命运动的谬论,为后来蒋介石的反共活动作了准备。一九二七年南京国民政府成立后,历任国民政府委员、考试院院长等职。一九四九年二月,蒋介石的统治即将崩溃,戴季陶感到绝望而自杀。 ↩
-
北京《晨报》,初名《晨钟报》,一九一六年八月创刊于北京,一九一八年十二月改名为《晨报》,一九二八年六月停刊。 ↩
-
一九二二年和一九二三年间,孙中山在共产党人的帮助下,决定改组国民党,实行国共合作,容纳共产党人参加国民党,并于一九二四年一月在广州召开国民党第一次全国代表大会,实行联俄、联共、扶助农工的三大政策。李大钊、谭平山、毛泽东、林伯渠、瞿秋白等共产党人参加了这次大会。他们曾经被选为国民党中央执行委员会的委员或候补委员,担任过国民党的许多领导工作,对于帮助国民党走上革命的道路,起了重大的作用。 ↩
-
第三国际即共产国际,一九一九年三月在列宁领导下成立。一九二二年中国共产党参加共产国际,成为它的一个支部。一九四三年五月,共产国际执行委员会主席团通过决定,提议解散共产国际,同年六月共产国际正式宣布解散。 ↩
-
国际联盟简称国联,一九二○年一月正式成立。先后参加的有六十多个国家。国际联盟标榜以“促进国际合作,维持国际和平与安全”为目的,实际上日益成为帝国主义国家推行侵略政策的工具。第二次世界大战爆发后无形瓦解,一九四六年四月正式宣布解散。 ↩
-
这里是指中农。 ↩
-
赵公元帅是中国民间传说的财神,叫赵公明。 ↩
-
指一九二五年五月三十日爆发的反帝爱国运动。一九二五年五月间,上海、青岛的日本纱厂先后发生工人罢工的斗争,遭到日本帝国主义和北洋军阀的镇压。上海内外棉第七厂日本资本家在五月十五日枪杀了工人顾正红,并伤工人十余人。二十九日青岛工人被反动政府屠杀八人。五月三十日,上海二千余学生分头在公共租界各马路进行宣传讲演,一百余名遭巡捕(租界内的警察)逮捕,被拘押在南京路老闸巡捕房内,引起了学生和市民的极大愤慨,有近万人聚集在巡捕房门口,要求释放被捕学生。英帝国主义的巡捕向群众开枪,打死打伤许多人。这就是震惊中外的五卅惨案。六月,英日等帝国主义在上海和其它地方继续进行屠杀。这些屠杀事件激起了全国人民的公愤。广大的工人、学生和部分工商业者,在许多城市和县镇举行游行示威和罢工、罢课、罢市,形成了全国规模的反帝爱国运动高潮。 ↩
-
这里是指自己有一部分土地,同时租种一部分土地,或出卖一部分劳动力,或兼营小商的贫农。 ↩
-
店员有不同的阶层,他们一般不占有生产资料,生活来源的全部或者主要部分是依靠向店主出卖劳动力所取得的工资。毛泽东在这里所指的是店员中的一部分,还有一部分下层店员过着无产阶级的生活。 ↩
-
指一九二二年香港和上海的海员罢工。香港海员罢工爆发于一月十二日,坚持了八个星期。最后,香港英帝国主义当局被迫答应增加工资,恢复原工会,释放被捕工人,抚恤在罢工中死难烈士的家属。上海海员罢工于八月五日开始,坚持了三个星期,也得到胜利。 ↩
-
指一九二二年和一九二三年中国共产党领导的各主要铁路线的工人罢工。在罢工过程中,工人群众的觉悟迅速提高,要求改善生活的经济斗争迅速发展为反对军阀的政治斗争。一九二三年二月四日,京汉铁路工人为争取组织总工会的自由,举行总罢工。其它许多铁路的工人也纷纷响应。二月七日,英帝国主义支持的北洋军阀吴佩孚、萧耀南等,残酷地屠杀京汉铁路的工人,造成了二七惨案。 ↩
-
开滦煤矿是直隶省(今河北省)开平、滦县一带煤矿的总称,当时为英帝国主义者所控制。开滦罢工指一九二二年十月、十一月间矿工三万余人举行的大罢工。英帝国主义者和北洋军阀对这次罢工进行残酷的镇压,工人死伤很多,但是仍然坚持斗争。最后,英帝国主义者不得不答应给工人增加一部分工资。焦作煤矿,在河南省北部,当时也为英帝国主义者所控制。焦作罢工指一九二五年七月爆发的罢工。这次罢工是为响应五卅运动而发动的,前后坚持七个多月。最后,英帝国主义者不得不承认工会有代表工人的权利,并且被迫接受增加工资、不无故开除工人和补偿工人因罢工所受的损失等项条件。 ↩
-
沙面当时是英法帝国主义在广州的租界。一九二四年七月,统治沙面的帝国主义者颁布新警律,规定沙面的中国人出入租界必须携带贴有本人相片的执照,在租界内行动必须受各种苛刻的限制,但是外国人却可以自由出入活动。沙面工人于七月十五日宣告罢工,抗议这些无理措施。这次沙面罢工迫使英法帝国主义者取消了新警律。 ↩
-
指一九二五年六月一日开始的上海大罢工和六月十九日开始的香港大罢工。这两处罢工是当时全国反帝爱国运动的支柱。前者有二十多万工人参加,坚持了三四个月;后者有二十五万工人参加,坚持了一年零四个月,是截至当时为止的世界工人运动史中时间最长的一次罢工。 ↩
-
三合会、哥老会、大刀会、在理会、青帮是旧中国的一些民间秘密团体,参加者主要的是破产农民、失业手工业工人和流氓无产者。这类团体大都用宗教迷信为团聚成员的工具,采取家长制的组织形式,有的还拥有武装。参加这类团体的人,在社会生活中有互相援助的义务,有时还共同反抗压迫他们的地主、官僚和外国侵略者。但是,农民和手工业工人不可能依靠这类团体得到出路。同时,由于这类团体带有严重的封建性和盲目的破坏性,它们又往往容易被反动统治阶级和帝国主义势力所操纵和利用。随着工人阶级力量的壮大和中国共产党的成立,农民和手工业工人在共产党的领导之下逐步地建立了完全新式的群众组织,这类落后的团体就失掉了它们的存在价值。 ↩
-
-
人社部规范性文件库
人社部规范性文件库
通过
ctrl +F 查找关键字,点击标题后打开人社部官网对于文件链接。 -
人社部规范性文件库
人社部规范性文件库
通过
ctrl +F 查找关键字,点击标题后打开人社部官网对于文件链接。 -
分享几个比较有用的AI
ARC Lab
腾讯ARC实验室推出的AI人像修复小工具
修复人像、人物照片去背景(抠图),暂未开放API
Claude
Slack中的一个小工具,功能比肩Chat-GPT,未开放API
需要注意的是已经停止了简中地区的注册,不过终归还是可以有办法使用的。
腾讯智影
一个影音类的AI,可以快速生成各类短视频、宣传视频等等。
需要登陆,有5分钟的免费时长可用于测试效果,暂未开放API。
-
Article 53 – Duration of labour
第 五十三 条 战俘每日劳动时间,包括往返路程之时间,不应过度,绝不得超过拘留国本国普通工人在该区从事同样工作者所许可之时间。
战俘在每日工作之中间,必须给予不少于一小时之休息。若拘留国工人之休息时间较长,则战俘之休息亦应与之相同。每周应另给予连续二十四小时之休息时间,以星期日或其本国所遵行之休息日为宜。此外工作满一年之战俘应给予连续八日之休息,在此期间工资应予照付。
如采用计件工作等类方法时,其工作时间亦不得因而致其过长。
——1949年8月12日日内瓦第三公约 – 红十字国际委员会 (icrc.org)
Article 53 – Duration of labour
The duration of the daily labour of prisoners of war, including the time of the journey to and fro, shall not be excessive, and must in no case exceed that permitted for civilian workers in the district, who are nationals of the Detaining Power and employed on the same work.
Prisoners of war must be allowed, in the middle of the day’s work, a rest of not less than one hour. This rest will be the same as that to which workers of the Detaining Power are entitled, if the latter is of longer duration. They shall be allowed in addition a rest of twenty-four consecutive hours every week, preferably on Sunday or the day of rest in their country of origin. Furthermore, every prisoner who has worked for one year shall be granted a rest of eight consecutive days, during which his working pay shall be paid him.
If methods of labour such as piece work are employed, the length of the working period shall not be rendered excessive thereby.
-
通过excel计算身份证号校验位
通过excel计算身份证号校验位
自从2004年1月1日《中华人民共和国居民身份证法》施行开始,居民身份证号码由15位升为18位,其中年份由2位扩展位4位,同时增加最后一位作为校验位。
在人事管理的实际操作过程中,曾经遇到过持假身份证入职的情况,当时我正在企业里牵头EHR系统实施,员工电子档案还只是通过Excel管理,所以只能通过Excel来校验身份证号码的真伪。
- 校验位是根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
计算过程如下:
- 身份证第 1-17 位分别乘以对应的权重因子
- 将乘积之和取模 11(即取除以11后的余数),根据下表得到对应的第 18 位校验码
其中的X,实际上是罗马数字中的10,即Ⅹ
在不同的字体里,两者可能会存在非常相似的情况,但在Excel中,用code函数可以很清楚的看出两者之间的差别。
在实际工作中,为了输入方便,往往也是直接输入大写英文字母“X”。
通过Excel数组公式求身份证号校验位:
=MID("10X98765432",MOD(SUM(MID(A1,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)
Excel中的数组公式需要使用SHIFT+CTRL+ENTER键入
通过VBA自定义函数处理身份证号校验位:
Function ID(num) Dim X(17) '储存身份证号码分割后的每位字符 Dim Y() '储存计算相乘的系数 Dim LastNum() '储存身份证最后一位验证码 '储存身份证前17位 For i = 0 To 16 X(i) = Mid(num, i + 1, 1) Next '如果第18位是字母X或x,将数字10储存到X(17)中 '如果第18位是数字,直接储存到X(17)中 '如果是其他情况,什么都不做 If Mid(num, 18, 1) = "X" Or Mid(num, 18, 1) = "x" Then X(17) = 10 ElseIf IsNumeric(Mid(num, 18, 1)) Then X(17) = Mid(num, 18, 1) End If 'Y中最后一位11是取模的除数,其余是相乘系数 Y = Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 11) LastNum = Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2) '判断位数,18位且前17位都是数字才可能正确,再计算校验码判断 If Len(num) = 18 And Application.WorksheetFunction.IsNumber(Mid(num, 1, 17)) Then Sum = 0 For i = 0 To 16 Sum = Sum + X(i) * Y(i) Next Code = Sum Mod Y(17) If LastNum(Code) - X(17) = 0 Then ID = "正确" Else ID = "请检查身份证号码!" End If '非18位情况身份证号码错误 Else ID = "请检查身份证号码!" End If End Function
以下是经优化后的VBA代码:
Function ID(num) Dim X(0 To 16) As String '储存身份证号码分割后的每位字符 Dim Y() As Integer '储存计算相乘的系数 Dim LastNum() As Integer '储存身份证最后一位验证码 Dim i As Integer Dim Sum As Long Dim Code As Integer '将字符串转成字符数组并储存 X = Split(Left(num, 17), "") '如果第18位是字母X或x,将数字10储存到X(17)中 '如果第18位是数字,直接储存到X(17)中 If Mid(num, 18, 1) Like "[0-9]" Then X(17) = Mid(num, 18, 1) ElseIf LCase(Mid(num, 18, 1)) = "x" Then X(17) = "10" End If 'Y中最后一位11是取模的除数,其余是相乘系数 Y = Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 11) LastNum = Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2) '判断位数,18位且前17位都是数字才可能正确,再计算校验码判断 If Len(num) = 18 And IsNumeric(Left(num, 17)) Then Sum = 0 For i = 0 To 16 Sum = Sum + X(i) * Y(i) Next Code = Sum Mod 11 If LastNum(Code) = CInt(X(17)) Then ID = "正确" Else ID = "请检查身份证号码!" End If '非18位情况身份证号码错误 Else ID = "请检查身份证号码!" End If End Function 优化说明: 将变量声明放置在函数开始处,提高代码的可读性; 将字符分割为字符数组,简化代码; 使用Like运算符代替Or,简化代码; 将字符转换为数值类型,提高代码执行效率; 简化校验码的计算过程; 若校验码计算错误,提示后缀不必添加“位身份证号码”。
-
【Excel】SUMPRODUCT函数-条件求和
【Excel】SUMPRODUCT函数-条件求和
单条件求和
=SUMPRODUCT(A:A*(B:B=C1))
- 求和区域与条件区域不需要区分前后顺序;
例:如果B列中的数值等于C1,则将其在A列的数值进行求和计算;
多条件求和
判断条件位于不同列中:
Sumproduct(求和区域,(条件区域1=条件1)*(条件区域2=条件2)*..)
- 求和区域在最前或者最后都可以,条件判断区域用
*
链接;
如:
=SUMPRODUCT(C2:C7,(A2:A7=E1)*(B2:B7=F1))
判断条件位于同一列中:
=SUMPRODUCT([对第一组数据求和]+[对第二组数据求和])
如:
=SUMPRODUCT((A2:A7=E1)*(B2:B7)+(A2:A7=E2)*(B2:B7))
对同一主体不同比例的结果求和
=SUMPRODUCT(基数区域,比例区域)
此类数据统计常见于对销售业绩的管理,另外在HR的日常业务中,关于社保金额的计算也会涉及到相似的需求。
在传统计算方法中,需要分别计算三个基数对应三个比例的小计值,最后对小计值进行求和,往往需要数据辅助列来完成。在使用
SUMPRODUCT
后,可直接对该结果进行求和:=SUMPRODUCT(B2:B4,C2:C4)
SUMPRODUCT
的计算过程和传统先求小计再求合计的过程是相同的,比较好理解。其他
当然,
SUMPRODUCT
函数还有很多更高级的使用方式,比如与FIND
函数协作进行模糊统计等等,但由于在日常工作中的应用相对较少,在此就不再多做介绍。 -
根据类别列数据,将不同类别拆分成独立excel文件
根据类别列数据,将不同类别拆分成独立excel文件
Sub 根据类别列数据,将不同类别拆分成独立excel文件() Dim d As Object, arr, brr, r, kr, i&, j&, k&, x&, Mystr$ Dim Rng As Range, Rg As Range, tRow&, tCol&, aCol&, pd&, mypath$ Dim Cll As Range, sht As Worksheet '第一部分,用户选择保存分表工作簿的路径。 With Application.FileDialog(msoFileDialogFolderPicker) '选择保存工作薄的文件路径 .AllowMultiSelect = False '不允许多选 If .Show Then mypath = .SelectedItems(1) '读取选择的文件路径 Else Exit Sub '如果没有选择保存路径,则退出程序 End If End With If Right(mypath, 1) <> "\" Then mypath = mypath & "\" ' ' '第二部分遍历总表数据,通过字典将指定字段的不同明细行过滤保存 Set d = CreateObject("scripting.dictionary") 'set字典 Set Rg = Application.InputBox("请框选拆分依据列!只能选择单列单元格区域!", Title:="提示", Type:=8) '用户选择的拆分依据列 tCol = Rg.Column '取拆分依据列列标 tRow = Val(Application.InputBox("请输入总表标题行的行数?")) '用户设置总表的标题行数 If tRow < 0 Then MsgBox "标题行数不能为负数,程序退出。": Exit Sub Set Rng = ActiveSheet.UsedRange '总表的数据区域 Set Cll = ActiveSheet.Cells '用于在分表粘贴和总表同样行高列宽的数据格式 arr = Rng '数据范围装入数组arr tCol = tCol - Rng.Column + 1 '计算依据列在数组中的位置 aCol = UBound(arr, 2) '数据源的列数 For i = tRow + 1 To UBound(arr) '遍历数组arr If arr(i, tCol) = "" Then arr(i, tCol) = "单元格空白" Mystr = arr(i, tCol) '统一转换为字符串格式 If Not d.exists(Mystr) Then d(Mystr) = i '字典中不存在关键词则将行号装入字典 Else d(Mystr) = d(Mystr) & "," & i '如果存在则合并行号,以逗号间隔 End If Next ' ' '第三部分遍历字典取出分表数据明细,建立不同工作簿保存数据。 Application.ScreenUpdating = False '关闭屏幕刷新 Application.DisplayAlerts = False '关闭系统警告信息 kr = d.keys '字典的key集 For i = 0 To UBound(kr) '遍历字典key值 If kr(i) <> "" Then '如果key不为空 r = Split(d(kr(i)), ",") '取出item里储存的行号 ReDim brr(1 To UBound(r) + 1, 1 To aCol) '声明放置结果的数组brr k = 0 For x = 0 To UBound(r) k = k + 1'累加记录行数 For j = 1 To aCol '遍历读取列 brr(k, j) = arr(r(x), j) Next Next With Workbooks.Add '新建一个工作簿 With .Sheets(1).[a1] Cll.Copy '复制粘贴总表的单元格格式 .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Cells.NumberFormat = "@" '设置文本格式,防止文本值变形 If tRow > 0 Then .Resize(tRow, aCol) = arr '放标题行 .Offset(tRow, 0).Resize(k, aCol) = brr '放置数据区域 .Select'激活A1单元格 End With .SaveAs mypath & kr(i), xlWorkbookDefault '保存工作簿 .Close True '关闭工作簿 End With End If Next '收尾巴。 Set d = Nothing '释放字典 Erase arr: Erase brr '释放数组 MsgBox "处理完成。", , "提醒" Application.ScreenUpdating = True '恢复屏幕刷新 Application.DisplayAlerts = True '恢复显示系统警告和消息 End Sub