好的,希望我的问题有道理,因为我最近有不好的代表。我现在已经找了一段时间找不到答案,但找不到任何东西,所以我觉得我可以安全地问这个问题哈哈。
我试图动态地将一堆表中的一堆行列表到另一个表中的水平列。我认为我的问题可能是循环参考,但我真的无法解决。
=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)))
这是我在 OCCOUT 表格中使用的公式。这会在 MINDBLD 表的B列中垂直动态列出一堆ID。此列表的单元格A2包含我的条件:例如:办公室(ids)。这很完美,是一个非常甜蜜的公式。
=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)))
使用此公式,我尝试水平列出 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,则返回错误。