送人玫瑰,手有余香,请将文章分享给更多朋友
动手操作是熟练掌握EXCEL的最快捷途径!
【置顶公众号】或者【设为星标】及时接收更新不迷路
小伙伴们好,今天要借一道题目向大家介绍一个我们几乎都不知道的函数—SIGN函数。在一些重造数据结构的题目中,SIGN函数发挥着无法替代的作用。
先来看看SIGH函数的介绍吧!
它确定数字的符号。 如果数字为正数,则返回 1;如果数字为 0,则返回零 (0);如果数字为负数,则返回 -1。
SIGN(number)
这个函数看起来非常简单,唯一的参数为任意实数即可。
下面我们就来看看SIGN函数怎样发挥强大的功力吧!
有这样一道题目。单元格B2到单元格R100是1到99的整数,在同一行出现2次或2次以上只记录一次的要求下,单元格B2到单元格R100中出现次数最多的数一共出现了几次?
思考十秒钟,朋友们有什么好办法解决这道题目吗?
这是一道数据结构重造的题目,毫无疑问要用到MMULT函数。
在单元格Y2中输入公式“=MAX(MMULT(SIGN(TRANSPOSE(COUNTIF(OFFSET(B1:R1,ROW(1:99),),COLUMN(A:CU)))),ROW(1:99)^0))”,三键回车即可。
思路:
OFFSET(B1:R1,ROW(1:99),)部分,以单元格区域B1:R1为基点,分别向下移动1-99行
在这个新生成的内存数组中,利用COUNTIF函数统计1-99这99个数字分别的个数
接下来重点来了。首先利用TRANSPOSE这个函数将统计的结果(也是一个内存数组)进行转置。转置后,每一行上所显示的数字的含义是,1-99中的某个数字在OFFSET函数生成的内存数组中统计的结果。其统计的结果有可能是0,也有可能是任何大于0的数字
利用SIGN函数,无论统计的结果是多少,统统都赋值为1(大于0的数)或者为0(统计结果为0)。这样做就满足了题目要求的,无论统计为多少次,只计数一次
接下来利用MMULT函数求和
MAX函数提取最大值,即出现次数最多的。
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
我就知道你“在看”
联系客服