在我的“Pieces”表和表格中,我有一堆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
然后我得到了一张“正面”表格,其中数据已经排序等。 我希望能够在前面的单页上列出多个租户。在上面的示例中,所有租户都处于同一级别:“00”。
在“正面”表格中,我使用=CONCATENATE(F5,B15)
:F5= 1358
:B15= 00
拉出我在单元格I30中查看的关卡ID。
Cell I32包含:
=COUNTIF(pieces[Level ID],(CONCATENATE(I30,"?")))
返回9
。
在此之下,我想制作一个00级所有租户的“动态”列表。我不完全确定如何做到这一点(我可能会走向错误的方向)但我相信我有部分这个谜题我只是不知道怎么把它拼凑起来。
我可以通过以下论坛返回一个租户:
=VLOOKUP(CONCATENATE(I30,"1"), pieces[[#All], [Level ID]:[Tenant]], 4, FALSE)
正确返回第一个租户(“VACANT”)。
我当时认为我可以通过使用以下内容来下拉“列表”(仅限于下面的单元格):
=OFFSET(VLOOKUP(CONCATENATE(I30,"1"),pieces[[#All],[Level ID]:[Tenant]],4,FALSE),0,0,I32)
将使用我的COUNTIF
语句将高度设置为9.然而,这个公式不起作用,即使在查找
答案 0 :(得分:1)
使用AGGREGATE¹ function将第一,第二,第三,等匹配的行号从表格返回到INDEX function。
=IFERROR(INDEX(pieces[Tenant], AGGREGATE(15, 6, (ROW(pieces[Level ID])-ROW(pieces[#Headers]))/(LEFT(pieces[Level ID], LEN(I$30))=I$30), ROW(1:1))), "no more")
直到你的比赛用完为止。如果您希望不匹配的单元格显示为空白,请将“不再”更改为零长度字符串(例如""
)。
¹ Excel 2010引入了AGGREGATE function。早期版本不提供。