我喜欢VBA,但如果可以用一个相当直接的公式来完成,那就更好了! (为了最终用户的利益)
假设我有以下数据:
我想创建一个我可以在列[D]中填写的公式,它将在“a”上查找(这也可以是一行而不是列)并返回连续的行(或列)“red” ,“蓝色”,“绿色” - 连续返回所有唯一值,然后停止/错误或某事......
可能?合理的期望?
用于解释公式如何运作的奖励积分
答案 0 :(得分:1)
如何使用数组公式here
提取不同值的列表,这是一个很好的解释基本公式是
=IFERROR(INDEX(B$2:B$19, MATCH(0, COUNTIF(D$1:D1, B$2:B$19), 0)),"")
将为您提供B列中的所有不同值。
通过一些调整,你可以得到
=IFERROR(INDEX(B$2:B$19, MATCH(0, COUNTIF(D$1:D1, IF(A$2:A$19=D$1,B$2:B$19,D$1)), 0)),"")
也是在D2中输入的数组公式,D1中的“a”只选择A列中带“a”的那些。
必须输入 CTRL + shift + 输入
原始公式按
工作(1)使用COUNTIF创建一个数组,其中每个元素对应于B2:B19范围内的单元格。如果B2:B19范围内的字符串已经位于当前单元格上方的单元格中(最初为D2),则COUNTIF将在数组中放置1:如果不是,则将为零。
(2)使用MATCH查找数组中第一个零的位置(对应于未添加到列表中的下一个字符串)。
(3)使用INDEX在B2:B19中找到该位置的字符串。
我选择通过添加预备步骤来修改它
(0)如果A2:A19中的相应字母是“a”,请像以前一样使用B2:B19 - 如果不是,请使用“a”。 “a”已经在D1中,因此它不会被添加到D列的列表中。
http://www.get-digital-help.com/2009/03/30/how-to-extract-a-unique-list-and-the-duplicates-in-excel-from-one-column/
答案 1 :(得分:1)
使用数据透视表回答问题: -
(1)选择Insert |从功能区旋转表。在现有工作表上选择A1:19作为范围,选择D1作为位置。
(2)将Letter拖到Filter框中并将Color拖到Row Labels框中。
(3)单击表标题旁边的过滤器符号,选中“选择多个项目”并确保仅选中“a”旁边的复选框。
您可能希望通过单击功能区中的“字段标题”来删除“行标题”标题,并通过右键单击它并选择“删除总计”来删除总计。