excel 2010,在两列中查找空白单元格,在相应的不同列中返回文本

以下是我的数据的屏幕截图:

数据

我想要searchB4:B40和C4:C40,并查找指定范围内的所有空白单元格。 如果在两个范围内都是空白的,则返回列A中相应行中的文本。理想情况下,输出可以合并,并可以列出类似8:00-2:00的内容。

这是我到目前为止: =INDEX('C:\Path\to\other\worksheet\[Blank Schedule Grid.xlsx]Susan'!B4:B40, MATCH("",'C:\Path\to\other\worksheet\[Blank Schedule Grid.xlsx]Susan'!B4:B40,0),'C:\Path\to\other\worksheet\[Blank Schedule Grid.xlsx]Susan'!B2)

我在正确的道路上?

你想要的公式是:

 =IFERROR(INDEX($A$18:$A$40,AGGREGATE(15,6,(ROW($A$18:$A$40)-ROW($A$18)+1)/(($B$18:$B$40="")*($C$18:$C$40="")),ROW(1:1))),"") 

我会让你把工作簿和工作表引用。 他们只在范围上需要。 不要把它们放在ROW()函数中的Range引用上。 他们只是在那里返回一个数字,并不重要他们引用的表。 只要确保范围本身匹配。

在这里输入图像说明

与工作簿引用的连接会使公式冗长和笨重。 要做到这一点,VBA将是最好的路线。


编辑:

厌倦了,并决定把你的工作簿和工作表引用:

 =IFERROR(INDEX('C:\Path\to\other\worksheet\[Blank Schedule Grid.xlsx]Susan'!$A$4:$A$40,AGGREGATE(15,6,(ROW($A$4:$A$40)-ROW($A$4)+1)/(('C:\Path\to\other\worksheet\[Blank Schedule Grid.xlsx]Susan'!$B$4:$B$40="")*('C:\Path\to\other\worksheet\[Blank Schedule Grid.xlsx]Susan'!$C$4:$C$40="")),ROW(1:1))),"") 

你想在单个单元格或新列中的所有值?

 =IF(AND(ISBLANK(B18), ISBLANK(C18)), A18, "") 

假设您的数据以A18开头(按照屏幕截图),您可以将其放在D18单元格中,然后复制。