使用 TRANSPOSE/SPLIT/VLOOKUP 来展平 ARRAYFORMULA 的输出

问题描述 投票:0回答:1

我正在尝试创建一个电子表格来提供服务器机架的可视化表示。 我有一个名为 range 的服务器,其中包含该机架中服务器的机架号和机架单元 (RU) 位置。 挑战是使用 VLOOKUP 将多 RU 服务器表示为 RU 插槽。

服务器机架表示例

在示例表(机架选项卡)中,我描述了所需输出的示例。

B 列(B2)是我原来的 VLOOKUP,D 列(D2),E 是我失败的尝试,G 列是我想要的输出。

我尝试使用 SPLIT/TRANSPOSE 组合来拆分服务器描述(使用“/”分隔符)并转置输出以“展平”拆分(公式如下):

=ARRAYFORMULA(TRANSPOSE(ARRAYFORMULA(IF(LEN(B$1)=0,,IFNA(TRANSPOSE(SPLIT(VLOOKUP(RIGHT(B$1,3))&"-"&$A$2:$A,ServerDB,6, 0),"/")),"打开")))))

问题是 SPLIT 使描述变平,但 TRANSPOSE 使 VLOOKUP 变平,并且再次 TRANSPOSing 重新创建 SPLIT。 我不会坚持按照自己的方式去做,所以如果有人有解决方案或创意,我愿意接受建议。感谢您花时间查看我的问题。

google-sheets google-apps-script google-sheets-formula
1个回答
0
投票

这是一个可能的解决方案。

=ARRAYFORMULA(LET(
  x,IFNA(VLOOKUP(RIGHT(B1,3)&"-"&TOCOL(A2:A,1),ServerDB,6,)),
  s,SEQUENCE(ROWS(x)),
  sp,SPLIT(x,"/"),
  nop,SPLIT(TOCOL(FILTER(s+SEQUENCE(1,COLUMNS(sp),0)&"❅"&sp,x<>""),1),"❅"),
  IFNA(VLOOKUP(s,QUERY(nop,"where Col2<>''"),2,),"Open")))
© www.soinside.com 2019 - 2024. All rights reserved.