效率低下的一天


周一,理应是效率比较高的一天,结果恰恰相反。

凡事都是需要统筹安排的,做个表格也一样。?

用了快一年的表格,最近改版了两次,加了好多内容进去,而我恨不得把所有的内容都通过公式或者其他方式自动完成……可是知识储备有限啊!想法是好的,那为了以后省事那就求助google吧。可是这真心是个受虐的过程……

最终目的是什么?实现方式有哪些?都有哪些公式能实现?最终公式用哪个?

如果本身脑子里有很多公式备用,那要好些,而我只能通过一次次的试,试语法,试组合,试嵌套,试结果……

今天的目的:通过比对六个条件从运价表中提取特定运价,插入到明细表中。

试错过程:

一,想到if函数,但是有六个条件,还要跨两个表比对,写循环能累死,通过php那点皮毛知道肯定有更省事的函数。搜索发现个and函数,跟if嵌套起来,试了试发现能够实现。问题是比对条件的位置需要固定,不能发生变动,因数据量较大不可能一直不变动……继续寻求更好的方法。

二,vlookup函数,试了好久这个函数!!与if嵌套,与and嵌套,而且该函数只能检索一列,那就只能将六个条件通过&连接起来,再进行比较,发现公式越写越长,写得自己都不知道到底是咋回事了……还好结果是出来了,整列更新公式之后,发现有些运价是不能正常显示出来的?提示“不正确的值”,搜索发现该函数需要将检索区域进行排序!光条件就有六个,你说数据得有几列?你让我按照哪列排序???

不得不说,又是吃了不求甚解的亏!连这个函数的优缺点都没了解就动手了!白白浪费了两个多小时?

三,难道不能实现?我的要求很过分?不能吧……接着搜得INDEX 与MATCH函数,说是可以定位并提取无序数据,那应该可以达到目的! 六个条件如何放到match函数里面?试了试and,if都没成功,越弄越复杂,最后还是通过&符连接起来进行比较,顺利实现目的!!!但是……一拖动发现全都是一个值,果断加个数组运算符,ctrl+shift+enter。

大功告成!!目前测试没有发现问题,表格及公式截图明天补吧。

真的太不容易了,这一天就弄了这么点,不过还是有些成就感的,毕竟以后能够更自动化一些了。想想那些程序员真的好厉害,也许只是一个你认为很简单,很理所当然的要求,他们要实现它真的不容易,毕竟好的,有头脑的,天才的程序员还是少数!这也许就是国家鼓励全民编程的原因吧。

想到这里自然就想到了苏享茂,一个用自己的头脑,通过编程体现自身价值,换取自己并不是特别需要的物质生活的人,败给了一个用自己脸蛋通过婚姻实现了物质欲望的人,孰对孰错?根本谈不上对错,而是生而为人的底线!

翟某的心地如何?或者目的性如何?我想有很大一部分人会觉得,她愣是把一个任他摆布的长期饭票逼死了!是不是傻?!在程序员的脑海里,凡事都是if  true  false吗?我真的不相信能够写出年入千万程序的人,能笨到哪去?!也许正是因为这一点,才导致翟某的不择手段。

既然触犯了底线,那就等待着结果吧,让我们替苏享茂好好看看她的下场!

19-Sep  PS:

将运价表中的运价提取,插入到其他表格,比对条件为六个:

数组公式如下:

{=INDEX(表3,MATCH([@口岸]&[@目的地]&[@应收代码]&[@一程]&[@费用生效]&[@费用变更],表3[口岸代码]&表3[目的港]&表3[应收代码]&表3[首航]&表3[费用生效]&表3[费用变更],0),6)}

函数语法解释:

MATCH(lookup_value, lookup_array, [match_type])

MATCH 函数语法具有下列参数:

  • lookup_value    必需。要在 lookup_array 中匹配的值。例如,如果要在电话簿中查找某人的电话号码,则应该将姓名作为查找值,但实际上需要的是电话号码。

    lookup_value 参数可以为值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。

  • lookup_array    必需。要搜索的单元格区域。
  • match_type    可选。数字 -1、0 或 1。match_type 参数指定 Excel 如何将 lookup_value 与 lookup_array 中的值匹配。此参数的默认值为 1。
Match_type 行为
1 或省略 MATCH 查找小于或等于 lookup_value 的最大值。lookup_array 参数中的值必须以升序排序,例如:…-2, -1, 0, 1, 2, …, A-Z, FALSE, TRUE。
0 MATCH 查找完全等于 lookup_value 的第一个值。lookup_array 参数中的值可按任何顺序排列。
-1 MATCH 查找大于或等于 lookup_value 的最小值。lookup_array 参数中的值必须按降序排列,例如:TRUE, FALSE, Z-A, …2, 1, 0, -1, -2, … 等等。

INDEX(array, row_num, [column_num])

INDEX 函数语法具有下列参数:

  • Array    必需。单元格区域或数组常量。
    • 如果数组只包含一行或一列,则相对应的参数 Row_num 或 Column_num 为可选参数。
    • 如果数组有多行和多列,但只使用 Row_num 或 Column_num,函数 INDEX 返回数组中的整行或整列,且返回值也为数组。
  • Row_num    必需。选择数组中的某行,函数从该行返回数值。如果省略 Row_num,则必须有 Column_num。
  • Column_num    可选。选择数组中的某列,函数从该列返回数值。如果省略 Column_num,则必须有 Row_num。

备注

  • 如果同时使用参数 Row_num 和 Column_num,函数 INDEX 返回 Row_num 和 Column_num 交叉处的单元格中的值。
  • 如果将 Row_num 或 Column_num 设置为 0(零),函数 INDEX 则分别返回整个列或行的数组数值。若要使用以数组形式返回的值,请将 INDEX 函数以数组公式形式输入,对于行以水平单元格区域的形式输入,对于列以垂直单元格区域的形式输入。若要输入数组公式,请按 Ctrl+Shift+Enter。

    注意: 在 Excel Web App 中,不能创建数组公式。

  • Row_num 和 Column_num 必须指向数组中的一个单元格;否则,INDEX 返回 错误值 #REF!。
,

发表评论