offset()函数简介技巧及在函数组合方面的应用

2025-10-11 20:20:36

1、不难看出,完单量是按 0-23 时,分时统计的,要想计算出单日最高完单数,就必须先计算各城市每日完单量之和,再判断最大值。

这个问题需要分步计算,通常要使用辅助列来完成,因为辅助列能更好地匹配正常思维和计算的思路。

这道题惨绝人寰反人类的地方,正在于此,它明确禁止了这种常规完美操作!

于是乎,答题者被逼上梁山,必须想办法在一个公式中完成「计算单日完单量的分组求和」和「判断最大值」两步运算。

这就需要用到函数嵌套和数组公式了。

offset()函数简介技巧及在函数组合方面的应用

1、OFFSET+ROW,分割表格为 24 行一组的单日完单量数据表。

❶ OFFSET(D2:D25,24*(ROW(1:50)-1),)

由于数据表是按 0-23 时分时依次填列,每 24 行代表一整天的完单数。

也就是说,我们需要在公式中,将 D 列每 24 个分时完单数相加,形成一个表示每日完单量的有序数组。

这一步的前提就是将 D 列的每 24 行拆分为一组,以便进一步求和。

公式片段①就是为了实现这一目的。

我们先用 ROW(1:50)-1 返回一组 0-49 的有序数组 A,这里的 50 不是固定数值,它可以是任意、能够完全将有效数据区域拆分的足够大的数。

将 0-49 的有序数组乘以 24,即可得到{0;24;48;......;1176}这样公差为 24 的等差数列 B。

offset()函数简介技巧及在函数组合方面的应用

2、然后我们使用到了 OFFSET 函数,它是从初始区域开始,向下偏移指定行数,再向右偏移指定列数。

然后从偏移后的位置开始,返回指定多少行多少列单元格区域的偏移函数。

offset()函数简介技巧及在函数组合方面的应用

3、通过偏移函数OFFSET 函数,以 D2:D25 单元格区域为起点,依次偏移{0;24;48;......;1176}个单元格;

得到 50 个,包含各自 24 个单元格的不同区域 :

RFS{D2:D25,D26:D49,D50:D73,,,}

这些区域正好表示每一个城市每一天连续 24 小时的完单量。

offset()函数简介技巧及在函数组合方面的应用

4、MAX+SUMIF,求和单日完单量,并取最大值。

② {=MAX(SUMIF(RFS,">0"))}

这里,我们使用 SUMIF 函数来进行分组求和。

SUMIF 是一个条件求和函数,它通过条件区域与条件值的比对,将满足条件的求和区域单元格求和。

offset()函数简介技巧及在函数组合方面的应用

5、很显然,区域 RFS 中的每个数据都大于 0,所以 SUMIF 的第二个参数本身是没有意义的,它的作用仅仅在于求和。

但我们不能直接使用 SUM 函数,否则无法形成 50 个单独的求和结果。

offset()函数简介技巧及在函数组合方面的应用

6、于是一个没有意义的求和条件「>0」就显得很有必要了,它使得每个区域都进行单独进行这种判断,并计算出各个区域之和。

也就是我们所需要的各城市单日完单量数组 C{478519;458663;……;0;0;0}。

其中 478519 就是福州周一的完单量,以此类推。

offset()函数简介技巧及在函数组合方面的应用

7、最后就是 MAX 函数取最大值了。

这里最外围的大括号表示整个公式是一个数组公式。

我们在输入公式后,需要同时按【Ctrl+Shift+Enter】才能执行数组运算。

offset()函数简介技巧及在函数组合方面的应用

1、简要概括分组求和取最大值公式的运算逻辑:

❶ 先使用 ROW 函数生成的符合有序数组。


❷ 再通过 OFFSET 函数偏移实现分组。
❸ SUMIF 分组求和后再用 MAX 取最大值。

2、本试题在测评函数嵌套和数组公式使用能力的同时,也考验了求职者 Excel 技能的储备水平。

例如,解题中用到的 ROW 函数和 OFFSET 函数,ROW 在编号和排序中屡试不爽,OFFSET 则在动态图表制作中予取予求。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢