我想在一个更大的问题上这样做,但选择了最简单的例子来证明概念。
底部是我的文件的 CSV(带有公式)。
我正在尝试为标签“D”的列“S”或“E”(不是单列查找)下有匹配的所有支柱“自适应”和“动态”生成与 Strut ID 相对应的数组,并且报告相应支柱的支柱 ID。
我希望结果看起来像这样:
我还希望能够为第一个结果正下方的其他节点设置类似的查找和表格,而不会出现位置冲突。据我所知,数据透视表不会提供解决方案。
我看到了对此的参考,但那里没有足够的信息让我理解该方法,也没有应用它。
谁能解决我的问题?
CSV:
- 公式
- 使用已接受答案的输入进行更新,将 CSV 更新为
- 为测地穹顶结构分析所采用的方法论的下一阶段“概念验证”做好准备
|||||||||||||||||||||||||||
||||||Circumradius|1||||||||||||||||||||
||||||Edge Length|=H2*4/SQRT(6)||||||||||||||||||||
||||||Face Height|=H3*SIN(60*PI()/180)||||||||||||||||||||
||||||Tet Height|=SQRT(6)*H3/3||||||||||||||||||||
||||||Centroid|=H4/3||||||||||||||||||||
|||||||||||||||||||||||||||
|||||||||||||||||||||||||||
|||||||||||||||||||||||||||
ID|Node|G_ID||||x|y|z|||||||||||||||||||
A|1|A||||=H4-H6|0|0|||||||||||||||||||
B|2|B||||=-H6|=H3/2|0|||||||||||||||||||
C|3|C||||=-H6|=-H3/2|0|||||||||||||||||||
D|4|D||||0|0|=H5|||||||||||||||||||
|||||||||||||||||||||||||||
ID|Strut|G_ID|S|E||Vx|Vy|Vz||-Vx|-Vy|-Vz||Length||Sx|Sy|Sz||Ex|Ey|Ez|||||
AB|1|AB|A|B||=(U17-Q17)/$O17|=(V17-R17)/$O17|=(W17-S17)/$O17||=-G17|=-H17|=-I17||=SQRT( (U17-Q17)^2 + (V17-R17)^2 + (W17-S17)^2 )||=VLOOKUP($D17,$A$11:$I$14,7,0)|=VLOOKUP($D17,$A$11:$I$14,8,0)|=VLOOKUP($D17,$A$11:$I$14,9,0)||=VLOOKUP($E17,$A$11:$I$14,7,0)|=VLOOKUP($E17,$A$11:$I$14,8,0)|=VLOOKUP($E17,$A$11:$I$14,9,0)|||||
BC|2|BC|B|C||=(U18-Q18)/$O18|=(V18-R18)/$O18|=(W18-S18)/$O18||=-G18|=-H18|=-I18||=SQRT( (U18-Q18)^2 + (V18-R18)^2 + (W18-S18)^2 )||=VLOOKUP($D18,$A$11:$I$14,7,0)|=VLOOKUP($D18,$A$11:$I$14,8,0)|=VLOOKUP($D18,$A$11:$I$14,9,0)||=VLOOKUP($E18,$A$11:$I$14,7,0)|=VLOOKUP($E18,$A$11:$I$14,8,0)|=VLOOKUP($E18,$A$11:$I$14,9,0)|||||
CA|3|CA|C|A||=(U19-Q19)/$O19|=(V19-R19)/$O19|=(W19-S19)/$O19||=-G19|=-H19|=-I19||=SQRT( (U19-Q19)^2 + (V19-R19)^2 + (W19-S19)^2 )||=VLOOKUP($D19,$A$11:$I$14,7,0)|=VLOOKUP($D19,$A$11:$I$14,8,0)|=VLOOKUP($D19,$A$11:$I$14,9,0)||=VLOOKUP($E19,$A$11:$I$14,7,0)|=VLOOKUP($E19,$A$11:$I$14,8,0)|=VLOOKUP($E19,$A$11:$I$14,9,0)|||||
DA|4|DA|D|A||=(U20-Q20)/$O20|=(V20-R20)/$O20|=(W20-S20)/$O20||=-G20|=-H20|=-I20||=SQRT( (U20-Q20)^2 + (V20-R20)^2 + (W20-S20)^2 )||=VLOOKUP($D20,$A$11:$I$14,7,0)|=VLOOKUP($D20,$A$11:$I$14,8,0)|=VLOOKUP($D20,$A$11:$I$14,9,0)||=VLOOKUP($E20,$A$11:$I$14,7,0)|=VLOOKUP($E20,$A$11:$I$14,8,0)|=VLOOKUP($E20,$A$11:$I$14,9,0)|||||
DB|5|DB|D|B||=(U21-Q21)/$O21|=(V21-R21)/$O21|=(W21-S21)/$O21||=-G21|=-H21|=-I21||=SQRT( (U21-Q21)^2 + (V21-R21)^2 + (W21-S21)^2 )||=VLOOKUP($D21,$A$11:$I$14,7,0)|=VLOOKUP($D21,$A$11:$I$14,8,0)|=VLOOKUP($D21,$A$11:$I$14,9,0)||=VLOOKUP($E21,$A$11:$I$14,7,0)|=VLOOKUP($E21,$A$11:$I$14,8,0)|=VLOOKUP($E21,$A$11:$I$14,9,0)|||||
DC|6|DC|D|C||=(U22-Q22)/$O22|=(V22-R22)/$O22|=(W22-S22)/$O22||=-G22|=-H22|=-I22||=SQRT( (U22-Q22)^2 + (V22-R22)^2 + (W22-S22)^2 )||=VLOOKUP($D22,$A$11:$I$14,7,0)|=VLOOKUP($D22,$A$11:$I$14,8,0)|=VLOOKUP($D22,$A$11:$I$14,9,0)||=VLOOKUP($E22,$A$11:$I$14,7,0)|=VLOOKUP($E22,$A$11:$I$14,8,0)|=VLOOKUP($E22,$A$11:$I$14,9,0)|||||
|||||||||||||||||||||||||||
||||||||||||||||||||||||Struts joined at identified nodes (contributors to force/moment equations)|||
|||||||||||||||||||||||||||
|||||||||||||||||||||||||Node|ID|Strut
|||||||||||||||||||||||||4|=INDEX($A$11:$A$14,MATCH(Z27,$B$11:$B$14,0),1)|"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA27=$D$17:$D$22)+(AA27=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA27=$D$17:$D$22)+(AA27=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA27=$D$17:$D$22)+(AA27=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA27=$D$17:$D$22)+(AA27=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA27=$D$17:$D$22)+(AA27=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA27=$D$17:$D$22)+(AA27=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||
|||||||||||||||||||||||||Node|ID|Strut
|||||||||||||||||||||||||1|=INDEX($A$11:$A$14,MATCH(Z35,$B$11:$B$14,0),1)|"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA35=$D$17:$D$22)+(AA35=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA35=$D$17:$D$22)+(AA35=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA35=$D$17:$D$22)+(AA35=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA35=$D$17:$D$22)+(AA35=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA35=$D$17:$D$22)+(AA35=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA35=$D$17:$D$22)+(AA35=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||
|||||||||||||||||||||||||Node|ID|Strut
|||||||||||||||||||||||||2|=INDEX($A$11:$A$14,MATCH(Z43,$B$11:$B$14,0),1)|"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA43=$D$17:$D$22)+(AA43=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA43=$D$17:$D$22)+(AA43=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA43=$D$17:$D$22)+(AA43=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA43=$D$17:$D$22)+(AA43=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA43=$D$17:$D$22)+(AA43=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA43=$D$17:$D$22)+(AA43=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||
|||||||||||||||||||||||||Node|ID|Strut
|||||||||||||||||||||||||3|=INDEX($A$11:$A$14,MATCH(Z51,$B$11:$B$14,0),1)|"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA51=$D$17:$D$22)+(AA51=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA51=$D$17:$D$22)+(AA51=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA51=$D$17:$D$22)+(AA51=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA51=$D$17:$D$22)+(AA51=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA51=$D$17:$D$22)+(AA51=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
|||||||||||||||||||||||||||"{=IFERROR(INDIRECT(""B""&SMALL(IF((AA51=$D$17:$D$22)+(AA51=$E$17:$E$22),ROW($D$17:$D$22),""""),ROW($D$17:$D$22)-16)),"""")}"
您问题中的链接很好,但需要调整如下。
按+ +
{}
输入数组公式。结果是 4、5 和 6,正如您所要求的。CtrlShiftEnter调整:
INDIRECT("B"&
— 在您的情况下,您需要 B 列中的值,而不是索引。X25=
而不是"a"=
因为您想要该行中的值。ROW($D$17:$D$22)-16
而不是ROW()-2
因为行号来自 D 列,而不是来自放置公式的位置。编辑:
该
OR
函数本身不适用于数组公式,因此请改用+
运算符。结果:2、3、6
关于您的其他评论,它并不直接基于源的大小 - 结果数组实际上是那么大,只有一些结果是空字符串(
""
在公式中)。您可以添加过滤器来隐藏空结果,方法是选择 Y 列,转至数据 > 自动过滤并取消选中(空)。