使用 LibreOffice 的 Calc 程序(功能与 Microsoft Excel 几乎相同),我在 T 列中有一组数字,它们代表周数(标签在 S 中)。每周的数据有 3 行,然后有一行空白行将其与下一周分隔开:
S | T
=======
A | 90
B | 180
C | 250
A | 95
B | 160
C | 255
A | 100
B | 175
C | 260
A | 95
B | 185
C | 230
有没有办法计算单元格前的最大值,跳到每第 n 行?每周和数字组的其他列中的数据基于 T 列中前一周的数据,但我想使用迄今为止的最高值。
使用上面的数据作为示例:对于第 1、2 和 3 周,我希望公式 B 返回 180,但在第 4 周(数字较大)返回 185。对于 A 组,第 1 周以 90 为基准,第 2 周以 95 为基准,第 3 周以 100 为基准,第 4 周再次以 100 为基准。
答案1
您可以继续将当前周的值与前一周的最大值进行比较。
第一周,使用以下模式的公式=
本周价值
每隔一周使用公式=MAX(
本周价值,
上周最高)
由于向下移动时相对位置相同,因此您可以将此公式复制到所有其他单元格。在此示例中,您可以选择一个空白单元格和三个包含公式的单元格,然后复制,然后选择下一个空白单元格到您想要包含公式的最后一个单元格,然后粘贴。
答案2
在 Excel 中,你可以使用类似这样的“数组公式”来获取“A”的最大值
=MAX(IF(A1:A100="A",B1:B100))
使用 CTRL+SHIFT+ENTER 确认
随着你每周添加更多数据,最大值将会更新
我不知道这是否在 libreoffice 中起作用......
答案3
您是否需要按照所示方式组织数据?如果您将每周的所有数据放在同一行中,这将变得简单(在 Excel 2007 中):
答案4
Excel 现在添加了MAXIFS()
可使此过程变得简单的函数。如果您的数据以 开始S2
(根据您的格式显示为 ),则可以将此公式放入U2
:
=IF(S2="","",MAXIFS(T$1:T2,S$1:S2,S2))
然后,您可以将其复制/粘贴到列中的每个单元格中U
。固定引用 ( T$1
& S$1
) 不会改变,但相对引用 ( T2
& S2
) 将更新到相应的行。
工作原理:
- 首先检查 中的标签是否
S
为空白。如果是,则为空白。 T
查找当前行之前的最大值,但前提是该值与当前行的S
值相匹配S
。即获取此行或此行之上标签相同的所有值,然后查找这些值的最大值。