【问题标题】:Use of Offset, Vlookup, and Concatenate to return a list使用 Offset、Vlookup 和 Concatenate 返回列表
【发布时间】:2023-03-08 18:41:01
【问题描述】:

在我的“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。

单元格 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。但是,这个公式不起作用,即使在查找之后我也无法正确处理

【问题讨论】:

  • 所以您的关卡 ID 是伪装成真实数字的文本...?如果没有,带有 CONCATENATE 的 VLOOKUP 是如何工作的?
  • @Jeeped 基本上是的,它们必须在文本下,所以我可以将级别用作 00 等。而不仅仅是 0。
  • 我不知道这是否可以用普通公式完成。你对 VBA 很熟悉吗?
  • @JamesFaix 我用过一点 VBA,但我还是很陌生

标签: excel vba offset vlookup countif


【解决方案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")

填写,直到您的比赛用完。如果您希望不匹配的单元格显示为空白,请将 "no more" 更改为长度为零的字符串(例如 "")。

   


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

【讨论】:

  • 完美运行!感谢您的帮助,非常感谢
  • 只是想知道是否可以添加一定数量(由单元格定义)的文本框(或用户表单或形状等)堆叠在一起。每个形状/盒子/表格都可以包含公式和其他细节。这在某种程度上消除了“不再”的需要。可能比在工作表中使用零长度字符串等更清洁的解决方案
  • 公式不是这样工作的;实际上,一些 [google-sheets] 公式可以,但不是 [excel]。使用 [excel],您需要将公式填充到可能匹配的最大数量。使用 VBA,您可以动态更改返回次数,但不能使用本机工作表公式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-30
  • 2017-10-17
  • 2019-06-22
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
  • 2015-01-28
相关资源
最近更新 更多