使用 Offset、Vlookup 和 Concatenate 到 return 列表

Use of Offset, Vlookup, and Concatenate to return a list

在我的"Pieces"sheet和table我有一堆ID如下:

Level ID    Tenant Type    Level SQM    Tenant
1358001     Retail              1000    VACANT
1358002     Retail              1000    Schoc
1358003     Retail              1000    VACANT
1358004     Retail              1000    Wishbone
1358005     Retail              1000    Zebrano Ltd
1358006     Retail              1000    Cranfields
1358007     Retail              1000    Astoria
1358008     Retail              1000    Mall Drycleaners
1358009     Unaccounted Area    1000    Unaccounted Area

然后我得到一个 "front" sheet 数据排序等。 我希望能够在前面列出 sheet 单个级别的多个租户。在上面的示例中,所有租户都处于同一级别:“00”。

在 "front" sheet 上,我然后使用 =CONCATENATE(F5,B15):F5= 1358 调出我在单元格 I30 中查看的关卡 ID:B15= 00.

单元格 I32 包含: =COUNTIF(pieces[Level ID],(CONCATENATE(I30,"?"))) 其中 returns 9.

在此之下,我想制作一个 'dynamic' 级别 00 中所有租户的列表。我不完全确定该怎么做(而且我可能会朝着错误的方向前进)但我相信我有部分拼图,只是不知道如何拼凑。

我可以 return 一个租户使用以下论坛:

=VLOOKUP(CONCATENATE(I30,"1"), pieces[[#All], [Level ID]:[Tenant]], 4, FALSE)

第一个租户 ("VACANT") return 正确。

然后我想我可以通过使用类似的东西来下拉 'list'(就在下面的单元格中):

=OFFSET(VLOOKUP(CONCATENATE(I30,"1"),pieces[[#All],[Level ID]:[Tenant]],4,FALSE),0,0,I32)

这将使用我的 COUNTIF 语句来计算 9 的高度。但是,这个公式不起作用,即使查找了

使用 AGGREGATE¹ function to return the first, second, third, etc matching row numbers from the table to an INDEX function.

=IFERROR(INDEX(pieces[Tenant], AGGREGATE(15, 6, (ROW(pieces[Level ID])-ROW(pieces[#Headers]))/(LEFT(pieces[Level ID], LEN(I))=I), ROW(1:1))), "no more")

填写直到 运行 没有火柴。如果您希望不匹配的单元格显示为空白,请将 "no more" 更改为零长度字符串(例如 "")。


¹ AGGREGATE function 是在 Excel 2010 中引入的。它在早期版本中不可用。