Excel formula 基于excel中的第二列创建子列表

Excel formula 基于excel中的第二列创建子列表,excel-formula,excel,search,excel-2007,vba,Excel Formula,Excel,Search,Excel 2007,Vba,我有两列,第一列将有一个对象的名称,第二列是它所属的人。我希望每个人都有一张新的表格,列出他们分配给他们的任务。以下是一个例子: dog F cat F bell S whistle bird F 所以弗雷德有一只狗、一只猫和一只鸟;斯科特有一个铃铛;没有人在他们的页面上有哨子。现在做一个简单的IF(),我可以让Fred的页面看起来像这样 TOP OF ROW dog cat bird 斯科特的页面看起来像 TOP OF ROW bell TOP OF ROW dog cat b

我有两列,第一列将有一个对象的名称,第二列是它所属的人。我希望每个人都有一张新的表格,列出他们分配给他们的任务。以下是一个例子:

dog F
cat F
bell S
whistle 
bird F
所以弗雷德有一只狗、一只猫和一只鸟;斯科特有一个铃铛;没有人在他们的页面上有哨子。现在做一个简单的IF(),我可以让Fred的页面看起来像这样

TOP OF ROW
dog
cat


bird
斯科特的页面看起来像

TOP OF ROW


bell
TOP OF ROW
dog
cat
bird
但是我想让弗雷德看起来像

TOP OF ROW


bell
TOP OF ROW
dog
cat
bird
和斯科特一样

我目前的思路是在D中的一个隐藏列中使用
=VLOOKUP($C$1,Items!A2:C1000,3)
来告诉我数据所在的行(其中Items上的列C是一个隐藏列,行号为,C1是搜索参数(S或F)),然后
=IFERROR(单元格(“内容”,间接(地址($D2,2,1,TRUE,“Items”)),“”)
,但是,除了将搜索数组的行索引更改为1+上一个找到的项目(我还不知道如何执行),我无法确定如何继续搜索下一个项目。
我知道C++和C语言,但以前从来没有在VBA中编码过,我严重依赖MSDN,我的知识没有专门用于Excel API的MSDN部分。

< P>一个实现你想要的没有任何VBA代码的列表的方法就是使用高级过滤器。 在第1页上,输入列表如下所示

在表2上输入筛选条件(此条件表示在“拥有者”列中包含F)

最后在sheet3上,像这样调用高级过滤器函数

确保选择“复制到其他位置”

选择sheet1输入列表作为列表范围

选择sheet2筛选条件作为条件范围

并选择sheet3中的某个位置作为输出范围(复制到条目)

如果您喜欢使用excel VBA编程,那么最好的第一步是在excel中试用宏记录器(工具-宏-记录宏)


祝你好运

使用excel中的函数可以很好地实现这一点

基本上,您需要创建一个正在运行的countif

因此,在C2中,您将有
=COUNTIF($B$2:$B2,“F”)
显然,“F”也可以是对另一个单元格的引用。如果将此公式向下填充范围,则会扩大范围。例如,在C3中,它会说
=COUNTIF($B$2:$B3,“F”)

在您的示例中,这将在C列中给出一个运行总数,这意味着:

狗F1

f2类

贝尔S 2

口哨2

鸟F3

事实上,你有3个2并不重要,因为一个vlookup将始终匹配它找到的第一个匹配


这种技术有许多不同的应用。根据数据的不同,您可能会发现将其放在数据的左侧更容易,因此VLOOKUP将更容易。

不确定如何在此处正确显示插入的图像,非常感谢您的帮助。(现在可以了,图像按应有的方式显示)