2014-10-29 89 views
0

我需要一个工作簿中的响应组合在一起帮助。我正在使用Excel 2010,并且我有ColumnA,分类为1,2,3,4,5和6. ColumnB从下拉列表(A,B,C和D)中获得响应A,B,C和D都在电子表格中其他位置的单元格中定义,然后引用数据验证下拉列表)。假设答案是1-A,2-A,3-B,4-D,5-A,6-B。我想要一个不同的细胞中的公式,它会给我“1,2和5是A; 3和6是B; 4是D”可能不那么干净,但尽可能接近。 我不想使用VBA或宏的答案,即使没有它们,也不可能。我只想知道是否有任何方法可以使用任何公式组合来完成。Excel 2010中的分组无VBA

我提供了一个样本朝向使用的样品信息,如学习用品及其可用性底部的必要信息(所有单元格引用会很容易转移到我的实际工作簿由于放置在这里)。下拉列表的选择是从B294:B299开始定义的,以防万一这很重要(同样,这只是为了反映它在我的实际文件中设置的方式)。这里是示例的链接。 https://drive.google.com/file/d/0B5qnLtwIDvK7TjV0TTJOSnNNRU0/view?usp=sharing 请让我知道你能想出!谢谢!

+0

有每个类别只有一个回应? – 2014-10-29 23:00:54

回答

0

我设法得到什么,我认为你想工作。我将子计算放在不同的列中,以重复使用评估而不是压倒你。如果这是您想要的,我强烈建议您尝试了解每个配方的完成情况和整体逻辑。

Grouping Spreadsheet

在我的方法的概念是,每行需要最终意识到了什么是最后一排它上面有同样的反应。因此,我们可以沿着专栏走下去。 C列告诉我们是哪一行。 D列告诉我们什么是最后一行OVERALL具有相同的响应。列E确定那个响应有多少个实例。列E用于确定在'和'之前是否应该有逗号。列F在该响应的先前实例上构建(如上所述),使得包含该响应的最底部的行包含响应组的全部文本。列G追加列F中的文本当且仅当它是响应组的最后一行时。

C2 =SUMPRODUCT(MAX(($B$1:$B1=B2)*ROW($B$1:$B1))) 
D2 =SUMPRODUCT(MAX(($B$1:$B$7=B2)*ROW($B$1:$B$7))) 
E2 =COUNTIF($B$2:$B$7,B2) 
F2 =IF(C2=0,A2,INDEX($F$1:$F1,C2)&IF(ROW()=D2,IF(E2<3," and ",", and "),", ")&A2) 
G2 =IF(ROW()=2,"",G1)&IF(ROW()=D2,F2&IF(E2>1," are "," is ")&B2&IF(ROW()=COUNTA($A$1:$A$7),"","; "),"")