使用 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 中引入的。它在早期版本中不可用。
在我的"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 中引入的。它在早期版本中不可用。