excel中的动态垂直到水平列表(使用索引,聚合等)

时间:2016-07-18 01:00:00

标签: excel vba excel-vba

好的,希望我的问题有道理,因为我最近有不好的代表。我现在已经找了一段时间找不到答案,但找不到任何东西,所以我觉得我可以安全地问这个问题哈哈。

我试图动态地将一堆表中的一堆行列表到另一个表中的水平列。我认为我的问题可能是循环参考,但我真的无法解决。

  1. =INDEX(mindbld[ID], AGGREGATE(15, 6, (ROW(mindbld[Type Auto])-ROW(mindbld[#Headers]))/(LEFT(mindbld[Type Auto], LEN($A$2))=$A$2), ROW(1:1)))
  2. 这是我在 OCCOUT 表格中使用的公式。这会在 MINDBLD 表的B列中垂直动态列出一堆ID。此列表的单元格A2包含我的条件:例如:办公室(ids)。这很完美,是一个非常甜蜜的公式。

    1. =INDEX(tblOCC[[Ten Sched]:[Ten Sched]], AGGREGATE(15, 6, (ROW(tblOCC[[Tenant ID]:[Tenant ID]])-ROW(tblOCC[#Headers]))/(LEFT(tblOCC[[Building ID]:[Building ID]], LEN(occout[@[ID2]:[ID2]]))=occout[@[ID2]:[ID2]]), COLUMN(E:E)))
    2. 使用此公式,我尝试水平列出 TBLOCC 中的行。该表有许多行,这些行具有信息,具有与MINDBLD中相同的ID。

      TBLOCC 中的

      Ten Sched 列包含我正在检索的信息。 租户ID 是TBLOCC中左列最远的。 建筑ID 包含与 minbld [ID] 中相同的ID。

      OCCOUT ID2 包含公式1 找到的ID,虽然在C列中(例如,单元格C2 = B2),因为我认为这可能是一个问题。

      该公式返回 #NUM!,我似乎无法修复它。希望我已经清楚了。我觉得这对VBA来说会更容易! (我不知道)。

      编辑#1

      我发现有趣的是,公式在E2单元格中:

      =INDEX(tblOCC[[Ten Sched]:[Ten Sched]], AGGREGATE(15, 6, (ROW(tblOCC[[Tenant ID]:[Tenant ID]])-ROW(tblOCC[#Headers]))/(LEFT(tblOCC[[B ID2]:[B ID2]], LEN($C1))=$C1), COLUMN(E:E)))
      

      这有效(引用上面的ID)。

      但是,如果它在公式的同一行引用C2,则返回错误。

0 个答案:

没有答案