0

数据布局 - 点击查看图表

我有一个 Excel 表,其中包含一列我想确定其模式的 TEXT 数据(请参见图表右侧标记为“包含合并单元格的列”的列)。模式是为一组单元确定的。可以通过每个合并的单元格的开始和结束来识别单独的一组单元格(参见图表左侧标记为“包含单元格的文本 - 需要确定模式”的列)。

注意1:我找到了确定一组文本单元格的模式的以下公式,例如注意=INDEX(I2:I7,MODE(MATCH(I2:I7,I2:I7,0))) 2:以下链接提供了一些指导,但需要手动输入每个单独合并部分的开头。

如果您可以帮助提供一个公式或基于 Visual Basic 的解决方案,该解决方案“自动”识别数据集中每组单元格的 MODE 值,我将不胜感激。

4

1 回答 1

0

这里有两个公式解决方案供您考虑。

第一个使用您当前的数据结构。但是,它使用的OFFSET是 volatile 函数。

第二个避免使用OFFSET,但需要“规范化”您的数据,以便 A 列中的每个单元格都有一个与 E 列对应的值。

请注意,对于这两种解决方案,您都需要相应地调整范围。

解决方案 1

在此处输入图像描述

I2:

=COUNTIF(A2:A10,"?*")

J2,用 CONTROL+SHIFT+ENTER 确认,并复制下来:

=IF(ROWS(J$2:J2)<=$I$2,INDEX($A$2:$A$10,SMALL(IF(LEN($A$2:$A$10)>0,ROW($A$2:$A$10)-ROW($A$2)+1),ROWS(J$2:J2))),"")

K2,用 CONTROL+SHIFT+ENTER 确认,并复制下来:

=IF(ROWS(K$2:K2)<=$I$2,INDEX($E$2:$E$10,MODE(IF(COUNTIF(OFFSET($A$2:$A$10,,,ROW($A$2:$A$10)-ROW($A$2)+1),"?*")=ROWS(K$2:K2),MATCH($E$2:$E$10,$E$2:$E$10,0)))),"")

解决方案 2

在此处输入图像描述

首先,“标准化”A列如下......

1) Select A2:A10 (adjust the range accordingly).

2) Unmerge those cells `Ribbon >> Home tab >> Alignment group >> click Merge and Center dropdown >> select Unmerge Cells`

3) Select blank cells `Ribbon >> Home tab >> Editing group >> Find and Select >> Got to Special >> select Blanks >> Click OK`

4) Press the `=` key.

5) Press the `Up Arrow` key.

6) Press the `Ctrl` key, and then while the key is pressed down, press the `Enter` key.

然后,输入以下公式...

I2,用 CONTROL+SHIFT+ENTER 确认...

=SUM(IF(FREQUENCY(MATCH(A2:A10,A2:A10,0),ROW(A2:A10)-ROW(A2)+1)>0,1))

J2,用 CONTROL+SHIFT+ENTER 确认,并复制下来:

=IF(ROWS(J$2:J2)<=$I$2,INDEX($A$2:$A$10,SMALL(IF(FREQUENCY(MATCH($A$2:$A$10,$A$2:$A$10,0),ROW($A$2:$A$10)-ROW($A$2)+1)>0,ROW($A$2:$A$10)-ROW($A$2)+1),ROWS(J$2:J2))),"")

K2,用 CONTROL+SHIFT+ENTER 确认,并复制下来:

=IF(ROWS(K$2:K2)<=$I$2,INDEX($E$2:$E$10,MODE(IF($A$2:$A$10=J2,MATCH($E$2:$E$10,$E$2:$E$10,0)))),"")
于 2020-05-21T12:41:38.823 回答