拖动公式更改行引用而不是列 Excel

Drag Formula change Row reference instead of Column Excel

我有一个与喜欢他们的人相关联的事物的数据库,如下例所示:

这个SHEET名字是SHEET1

在另一个 sheet 中,我试图按喜欢它们的每个人对事物进行排序。

在第二个 sheet 中,我需要检查以确保单元格不为空(因为另一个用户输入可能会添加其他人)。如果单元格中有一个人的名字,我需要循环遍历数据库中的所有内容,看看那个人的名字是否出现在它旁边。

如果是的话,那我要return所有自己喜欢的东西,如下图绿色所示:

这个SHEET名字是SHEET2

我知道我需要使用 OFFSET 函数,但正如我现在写的那样,它不起作用。非常感谢任何帮助!

我的功能如下。这将是 SHEET 2 中 B2 的一个函数。我希望能够将此函数拖动到右侧(从 B2 到 F2)并获得如上图绿色所示的输出。

=IF(COUNTIF(OFFSET(sheet1!$B:$F, 0, COLUMN()-2) $A), OFFSET(sheet1!A2, 0, COLUMN() -2), " ")

我目前收到一条错误消息,指出我的参数太少。但是,我想我正在尝试做的事情还有其他问题......非常感谢任何帮助

SHEET 1 条数据:

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

SHEET 2(未解决)数据:

    Favorite Things                                 
Person 1                                        
Person 2                                        
Person 3                                        
Person 4                                        
Person 5                                        
Person 6                                        

我会使用 SMALL(IF()) 样式公式。

如果您有 2010 或更高版本,则可以使用 AGGREGATE() 函数轻松完成:

=IFERROR(INDEX(Sheet1!$A:$A,AGGREGATE(15,6,(ROW(Sheet1!$B:$D)-1)/(Sheet1!$B:$D=$A2),COLUMN(A:A))),"")

所以这些公式的作用是使用 SMALL() 公式。小公式就是这样设置的SMALL(Range,k)k 是实例,如果 k 为 3,那么它将 return 第三小。

由于我们使用 COLUMN(A:A) 作为我们的 k,因此每次向右填充时,由 COLUMN(A:A) 编辑的数字 return 都会增加 1。因此给了我们第 1 个列表,然后是第 2 个然后是第 3 个...

传递给 INDEX 的就是这个数字。

如果你不这样做,那么使用这个数组公式:

=IFERROR(INDEX(Sheet1!$A:$A,SMALL(IF(Sheet1!$B:$D=$A2,(ROW(Sheet1!$B:$D)-1)),COLUMN(A:A))),"")

作为数组公式,在离开编辑模式时必须使用 Ctrl-Shift-Enter 确认,而不是 Enter。如果操作正确,excel 将在公式周围放置 {}