根据合并单元格创建范围表

根据合并单元格创建范围表

我有一组数据,需要对其进行一些基本分析。但是,我需要按星期几处理数据,这在一系列关联单元格范围的合并单元格中显示(见下图)。

我有一个手动流程,但有点麻烦;我想根据合并的单元格创建一个按天列出的单元格范围表。这些范围将在其他公式中用于执行我需要的操作。给定日期的数据行数可能会发生变化,因此我需要范围表自动反映数据。

在此处输入图片描述

上图捕捉到了我在此阶段要寻找的内容;A 列中列出了五天,B 列中列出了不同数量的相关数字。范围表显示了值集所需的范围。例如,“星期五”有 2 个值,范围从 B16:B17。范围列出了“B16:B17”。

如果我添加两个额外的数字,并扩展合并的“星期五”单元格以包含接下来的两个单元格,则此列出的范围应自动更改为“B16:B19”。

我一直在互联网上寻找这样的功能,但我得到的搜索结果太多,都是不相关的任务,例如查找合并单元格或删除它们。我尝试使用ROWROWS公式,但它们似乎没有给出我想要的结果。

以防万一,我正在使用 Office 365 版本的 Excel。

答案1

这使用了一个包含一些重复的公式,因此我在下面用几个辅助列来展示它,这将使它更容易理解。您可以隐藏辅助列,或者如果您不介意公式太长,可以将它们的公式合并到 E 列结果中。这将自动调整值的数量变化。

在此处输入图片描述

我添加了一个占位符 ( End) 来标记数据的末尾,以便于搜索,这与公式的工作方式一致。您可以隐藏它,或者修改公式以仅查找 B 列中最后一行的值。

使用辅助列,E2 中的公式如下:

="B" & G2 & ":B" & H2

G 列和 H 列分别是 D 列中当天的第一行和最后一行。G2 中的公式:

=MATCH(D2,A:A,0)

这只是在 A 列列表中查找 D 列日期的行。H2 中的公式:

{=MATCH(FALSE,ISBLANK(OFFSET($A$1,G2,0,MATCH("End",A:A,0))),0)+G2-1}

这是一个数组公式。当您使用 ++Ctrl确认时,Excel 将添加花括号。ShiftEnter

这将开始查找日期单元格之后的第一个非空白单元格(即下一个日期标签;合并的单元格使用范围内第一个单元格的内容)。“结束”用作最后一天的下一个“日期标签”。然后,它会调整起始日期标签的位置。

如果您想要消除辅助列,则将它们合并到 E 列中,对于 E2,公式将如下所示:

{="B" & MATCH(D3,A:A,0) & ":B" & MATCH(FALSE,ISBLANK(OFFSET($A$1,MATCH(D3,A:A,0),0,MATCH("End",A:A,0))),0)+MATCH(D3,A:A,0)-1}

注意E列公式变成了数组公式,需要用CSE进行确认。

警告:如果 A 列数据不是 A 列内容的开头,而列表上方某处出现了日期名称,则这些公式将首先找到该信息,并且不起作用。在这种情况下,请使用明确的范围引用。范围的结束可以是数据可能到达的下方的任意单元格。范围的开始将是列标题“日期”所在的位置。要获得正确的行引用,您需要添加调整以在查找范围内局部偏移起始行的位置。

答案2

如果您的数据结构是按此顺序排列的,我有一个几乎可行的解决方案。此方法获取除最后一天之外的所有天数的范围。

公式: =CELL("address",OFFSET($A$1,MATCH(C2,$A$2:$A$16,0),))&":"&IFERROR(CELL("address",OFFSET($A$1,MATCH(C3,$A$2:$A$16,0)-1,)),"")

如果你不想显示“$”符号,你可以使用公式SUBSTITUTE删除这些符号

链接至以下图片
查找合并单元格范围 - 示例图像

编辑:

如果您的“参考”栏(C:C in the image above)是连续的,您可以使用以下公式获取所有数据: =CELL("address",OFFSET($A$1,MATCH(C3,$A$2:$A$16,0),))&":"&IFERROR(CELL("address",OFFSET($A$1,MATCH(C4,$A$2:$A$16,0)-1,)),ADDRESS(MATCH("zzz",A:A),1))

IFERROR用于获取 A 列中最后一行填充内容的公式。ADDRESS(MATCH("zzz",A:A),1)我在在这篇文章中回答

答案3

max每天的索引和索引min可以通过在数组公式中使用逻辑运算符来实现。范围可以通过连接来制定。我附上了我的工作来演示。

在此处输入图片描述

然而,这并不是一个特别有用的结果,因为范围是一个字符串,并没有告诉你该数组的数字方面。一个测量count或的数据透视表max可能更有价值。如果索引很重要,另一种选择(不使用数组公式)是使用和构建一个数据透视表minmax然后添加/减去以获得起始行和结束行

相关内容