室内设计培训
平面设计培训
部落窝教育
网站首页 >> Excel教程 >> 文章内容

奇招解难题,另类使用Max函数求最大值

[日期:2016-08-17]   来源:IT部落窝  作者:Excelman   阅读:1340[字体: ]
内容提要:MAX函数谁都会,没错!就是excel最大值函数!但本文的Excel取最大值函数案例,小编还真的第一次看见,长见识了!

  周末闲来无事,Excelman正想出去溜达。突然有表妹来电话求救,语气疲惫。

  表妹:Excelman,我的MAX函数失灵了,怎么办?
 
  Excelman:又遇到什么问题?快说来听听。
 
  于是表妹立马从QQ那发来表格,我打开表格一看,情况是这样:
 
 
excel最大值函数
 
 
  表妹:我要求每种货物装箱号的最大值。比如第二行的货物(A列)是苹果,装箱号(B列)是“1,3,4,5”,那么我要(在C列)得到1,3,4,5 五个数字最大的数,也就是5。我试过用MAX函数啦,结果怎么都是0。你看上面的截图(图一),MAX好像失灵不管用了!Excelman啊,我有上千行的数据要求装箱号的最大值,怎么办!
 
  Excelman:表妹,你一时糊涂。如果MAX函数的参数是文本,虽然不会显示错误符号,但是MAX函数只会把参数里的文本当作0处理。上图(图一)的 =MAX(B2) 相当于 =MAX(“1,3,4,5”) ,MAX值可不会把它当作有四个数值给你挑选出最大值。它只会认为“1,3,4,5”是一串文本,于是当作 0 处理。即是相当于 =MAX(0) ,结果肯定总是 0 啦。
 
  表妹:那也是哦。那你快告诉我怎么办?
 
  Excelman:别急。MAX函数的参数可以是数组。比如单元格输入=MAX({1,3,4,5}) 试试看。
 
  表妹马上试了一下,将结果截图发来,如下图二。
 
 
excel取最大值函数
 
 
  表妹:有点神奇。这个公式什么意思?特别是这个{1,3,4,5},大括号包围起来的东西是什么呀?
 
  Excelman: {1,3,4,5} 是一个数组。数组者,即由一些数据作为元素构成的一组数据也。(这是废话还是绕口令?)简单浅显地说,一个数组表达两层意思,一是数据本身的值,二是数据所在的行列位置。比如{1,3,4,5}表达的是一行四列的一组数据。也就是说第一行第一列的数据的值是1,第一行第二列的数据的值是3,如此类推。又比如,{1,3,4,5;6,7,8,9}表达的是两行四列的数据,英文逗号表示换列,英文分号表示换行。第一行第一列的数据的值是1,第二行第一列的数据的值是6,第一行第二列的数据的值是3,第二行第二列的数据的值是7,如此类推(参考下面的图三理解吧)……
 
 
Max函数求最大值
 
 
  表妹:不用说太多,我懂。我明白你想说的是,先将“1,3,4,5”、“2,8,9”等等这些字符逐个转为数组,然后再用MAX函数逐个求最大值。对吧?
 
  Excelman:聪明!正是如此!若得如表妹一徒,幸哉!
 
  表妹:那你告诉我怎么做吧?总不能让我一个个敲键盘打大括号输数字写公式吧?
 
  Excelman:你可以用下面的方法,三个步骤。
 
  (1)第一步,在“装箱号最大值”那列(图四中的C列)用公式给每行构造出含有MAX函数单词的文本。 
 
MAX函数
 
  比如上图,在单元格C2填写公式 ="=MAX({"&B2&"})" ,然后向下填充公式到表最后一行,这样每一行都得到一个文本。这些文本恰好是我们希望手工逐一输入的那些MAX函数公式!效果如图四。
 
  (2)第二步,将辅助列复制,选择性粘贴,把辅助列的公式转为数值。将辅助列的公式的值变成文本。
 
  (3)第三步,到高潮了,这是见证奇迹的时刻!
 
  “选定装箱号最大值”那列的数据区域(比如图五中的C列的数据区域C2:C5),按CTR+H快捷键,调出“查找和替换”对话框。“查找内容”和“替换为”两处都要填写“=”;是的,你没有听错,两处地方填的内容是一样的,都是“=”(参考图五)! 最后按“全部替换”。这样能够迫使Excel把作为文本的公式转为真正可以计算的公式。妥妥的,收工!
 
 
<span class=keyword><a href=http://www.ittribalwo.com/article/list_1.html target=_blank>excel教程<a></span>
 
 
  表妹:哇,没想到方法还蛮简单。看来今天加班不用很多时间啦。谢谢你,Excelman!
 
  后记:亲爱的读者,看到这里,学会了吗?如果把表妹的问题加大一丁点难度,比如装箱号的分割符不是“,”(逗号),而是“-”(减号),也就是“1,3,4,5”换成“1-3-4-5”,你应该也会解决吧?——别告诉你不会把“-”(减号)替换成“,”(逗号)哦。
 
  另外,这个问题用宏表函数Evaluate搭配MAX,或者自定义函数也可以解决,以后有机会再谈。
 
IT部落窝PS,CDR,213班 分享到: QQ空间 新浪微博 腾讯微博 人人网
photoshop教程
Photoshop教程
平面设计教程
Photoshop教程