【发布时间】:2016-03-10 02:47:28
【问题描述】:
我有一个问题(我相信)可以通过 excel 解决,并且可能不需要 VBA(我可能是错的)。我相信它可以通过嵌套函数来解决,但我尝试过的公式没有奏效。
这是我的数据:
Name Report # Name
Mark Doe ReportXXX Mark Doe
Connie Doe ReportYYY Connie Doe
Debbie Doe REPORTYYY Debbie Doe
Valerie Doe FSMVALTR1 Valerie Doe
Jeff Doe FSMVALTR1 Jeff Doe
Andy Doe RAZXYBCA1 Andy Doe
Ryan Doe RAZXYBCA1 Ryan Doe
Andy Doe RAZ111111 Jill Doe
Ryan Doe RAZ222112 Amanda Doe
此列表在前 NAME 和 REPORT # 列中持续约 4000 行。在第二个 NAME 列中,我有 ~160 行。
第二个名称列标识实际使用报告的所有用户,没有重复。两个名称和报告# 列有很多重复项,因为用户可以访问多个报告,其中许多是用于不同目的的同一个报告。由于第二个 NAME 列的行数很少,因此名称不会一直匹配,这可以在两个 NAME 列的底部附近观察到。
我需要做的是有一个VLOOKUP 来标识两列中的名称,然后返回每个人可以跨行(水平)访问的报告编号,而不是在列中。它还需要 I.D.大量报告,因为个人可以访问 1-15 份报告,从第二份开始,以此类推。
理想情况下应该是这样的:
Name Report # Name ex column ex column ex column
Mark Doe ReportXXX Mark Doe ReportXXX ReportAAA ReportB
我没有列出“Mark Doe”有权访问的其他报告,这些报告将在大约 4000 个长列表中的某个位置,以及他的名字在第一个 NAME 列中重复多次,但第二个“唯一” name 列将是跨行返回报告的位置。
【问题讨论】:
-
可以使用数组公式,所以 index(a1:c10,if((a1:a10="xyx")*(c1:c10="abc"),row(a1:a10)) ,1) 看看数组公式
-
我明白了,除非在这种情况下,您必须指定“名称”和“报告编号”才能返回值。这行不通,因为我有 167 个名字并且不能多次迭代这个公式。如果它与两个名称列匹配,它如何命名为“不可知”并且只返回报告的值?
-
@Jeeped 在那个例子中他指定了“red”“boat”,我不能为每个报告指定那个