1. SUMIFS
SUMIFS对应的是多条件求和的场景,比如,我们要得到12月份华北区域洗衣机在农村的销量,这就是一个多条件求和问题,如果用变量来描述:
How many x we did in region A, product B, customer type C in month M?
我们具体看下SUMIFS的用法。
SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
1) criteria_range1为计算关联条件的第一个区域。
SUMIFS2) criteria1为条件1,条件的形式为数字、表达式、单元格引用或者文本,可用来定义将对criteria_range1参数中的哪些单元格求和。例如,条件可以表示为32、“>32”、B4、"苹果"、或"32"。
3)criteria_range2为计算关联条件的第二个区域。
4) criteria2为条件2。和 3) 均成对出现。最多允许127个区域、条件对,即参数总数不超255个。
5)sum_range 是需要求和的实际 单元格。包括数字或包含数字的名称、区域或单元格引用。
对应上边的英文描述,具体的公式内容如下:
=SUMIFS(sales, regions, “A”, products, “B”, customer types, “C”, month, “M”)
2. VLOOKUP
VLOOKUP 可以让你实现一对一的查找,例如根据所有学生的成绩列表,可以通过 VLOOKUP 快速得到某几个指定学生的成绩数据。
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value 为需要在数组第一列中查找的数值。
Table_array 为需要在其中查找数据的数据表。
Col_index_num 为 table_array 中待返回的匹配值的列序号。
Range_lookup 为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。
VLOOKUP 对查找的顺序有严格要求,有严格的左右关系,比如源数据是A列和B列,我们要找到A列某几个值对应的B列信息,在源数据中,A列必须在B列的左边。如果A列在B列的右边,用VLOOKUP就达不到我们的目的,这时就需要用到索引和匹配的公式,即 INDEX+MATCH。
3. INDEX+MATCH
=INDEX(list of values, MATCH(what you want to lookup, lookup column, is your lookup column sorted?))
比如,我们有以下源数据:
4. IF
IF语句常用的场景是对数据进行分类,比如根据学生成绩,根据具体分数来定义优、良、中、差。
=IF(B2<60,"不及格",IF(B2<70,"差",IF(B2<80,"中",IF(B2<90,"良",IF(B2<=100,"优")))))
5. 公式嵌套
在解决问题时,很多场景下,一种公式很难满足所有的需求,比如在IF的例子中,我们在IF内部也嵌套了多个IF,这就是其中的一个场景。
比如第三个中的索引+匹配,其本质也是用到了索引和匹配的嵌套。
6. 基本算术表达式
基本算术表达式
7. 字符串处理
字符串处理
8. 工作日统计函数
判断一个日期是过去值还是将来值:
=if(this_date=today(),"Today",if(this_date < today(),"Past","Future"))
统计同个日期之间的天数:
=today()-date(2019,8,15)
日期格式设定:
计算某个日期对应的周数:
=weekday("06/20/2018")
返回两个日期之间的天数:
=DATE(2018,7,31)-DATE(2018,7,1)
常用的日期相关的函数
9. 大值与小值
SMALL: Used to find nth smallest value from a list. Use it like =SMALL(range of values, n).LARGE: Used to find nth largest value from a list.MIN: Gives the minimum value of a list.MAX: Gives the maximum value of a list.RANK: Finds the rank of a value in a list. Use it like =RANK(value, in this list, order)
10. IFERROR
当使用一个公式出现错误时,可以用IFERROR来增加提示信息。
比如,在使用VLOOKUP查找时,如果找不到数据,怎么办?
IFERROR(VLOOKUP(….), “Value not found!”) 就很好的解决了这个问题。