我有一个与喜欢它们的人相关的事物数据库,如下所示:
本页名称为第1页
在另一张表中,我试图通过每个喜欢它们的人来分类。
在第二张表中,我需要检查以确保单元格不是空白(因为另一个用户输入可能会添加其他人)。如果单元格中有人名,我需要遍历数据库中的所有内容,以查看该人的名字是否出现在其旁边。
如果确实如此,那么我希望它能够返回所有他们喜欢的东西,如下面的绿色所示:
我知道我需要使用OFFSET函数,但是正如我现在所写的那样,它不起作用。任何帮助都非常感谢!
我的功能如下。这将是SHEET 2中B2的一个功能。我希望能够将此功能向右拖动(从B2到F2)并使输出如上面的绿色所示。
=IF(COUNTIF(OFFSET(sheet1!$B$2:$F$2, 0, COLUMN()-2) $A$2), OFFSET(sheet1!A2, 0, COLUMN() -2), " ")
我目前收到一条错误消息,说我的论点太少了。但是,我想我还有其他的东西是错的......任何帮助都非常感激
SHEET 1 DATA:
Things People Who Like The Thing
Potatoes Person 3 Person 6
Cats Person 1 Person 4 Person 6
Mice Person 2 Person 6
Green Person 2 Person 6
Wine Person 1 Person 5 Person 6
Chicken Person 1 Person 6
Dogs Person 1 Person 4 Person 6
Flowers Person 2 Person 5 Person 6
Chair Person 3 Person 6
Shirts Person 4 Person 6
第2页(未解决)数据:
Favorite Things
Person 1
Person 2
Person 3
Person 4
Person 5
Person 6
答案 0 :(得分:1)
我会使用SMALL(IF())样式公式。
如果你有2010或更高版本,那么可以使用AGGREGATE()函数轻松完成:
=IFERROR(INDEX(Sheet1!$A$2:$A$11,AGGREGATE(15,6,(ROW(Sheet1!$B$2:$D$11)-1)/(Sheet1!$B$2:$D$11=$A2),COLUMN(A:A))),"")
所以这些公式的作用是使用SMALL()公式。小公式以这种方式SMALL(Range,k)
设置。 k
是实例,如果k为3,那么它将返回第3个最小值。
由于我们使用COLUMN(A:A)
作为我们的k
,COLUMN(A:A)
返回的数字每次填充到右边时都会增加1。这样就给我们列出了第1个,第2个,第3个......
这是传递给INDEX的号码。
如果不这样做,则使用此数组公式:
=IFERROR(INDEX(Sheet1!$A$2:$A$11,SMALL(IF(Sheet1!$B$2:$D$11=$A2,(ROW(Sheet1!$B$2:$D$11)-1)),COLUMN(A:A))),"")
作为数组公式,必须在离开编辑模式而不是Enter时使用Ctrl-Shift-Enter确认。如果正确完成,excel会将{}
放在公式周围。