是否有比嵌套 if/then 更好的方法来评估一组列中的单元格是否有数据,然后填充另一组列

问题描述 投票:0回答:3
我有一个包含所有规格的产品电子表格。一组列通过在单元格中放置 X 或“是”或任何字符来指示产品具有哪些认证。 (屏幕截图中的 A-D 列)

以屏幕截图为例,我想做的是另一组列(E-H),它们引用 A-D 列并填充适用的认证图像路径,从左侧填充它们。所以绝对不应该有间隙。

对于屏幕截图,我手动输入了 E-H 单元格,只是为了显示所需的结果。我还缩短了文本,这样图像就不会太宽。图像路径类似于“/volume/marketing/certs/UL.png”。

我已经使用了第一列: =IF(ISBLANK(A10),(IF(ISBLANK(B10),(IF(ISBLANK(C10)),(IF(ISBLANK(D10),"","UL-C")),"ESTAR"))," EMF")),"UL")

我一直在尝试对 F-H 列使用嵌套 IF 和 ISBLANK 公式,但很明显这将是一个很长的公式,因此我想看看在继续使用嵌套 IF/ISBLANK 方法之前是否有更简单的方法。

谢谢!

Screenshot of desired outcome

excel if-statement excel-formula
3个回答
1
投票
这就是您需要使用

FILTER()

 函数执行的操作:

enter image description here


=FILTER($A$1:$D$1,A2:D2<>"")


或者,一个数组公式:

=LET( a, A2:D8, IFNA(DROP(REDUCE("",SEQUENCE(ROWS(a)),LAMBDA(x,y, VSTACK(x,FILTER(A1:D1,INDEX(a,y,)<>"")))),1),""))

    

1
投票
将不需要的值移至正确的卷。 2

    您的问题类似于
  • 对值进行排序并用公式删除“0”
=LET(table,A1:D11, dd,DROP(table,1), d,IF(dd="","",TAKE(table,1)), rc,ROWS(d), cc,COLUMNS(d), WRAPROWS(SORTBY(TOCOL(d),TOCOL(SEQUENCE(rc,cc) +SEQUENCE(rc)*cc+(d="")*cc)),cc))

enter image description here


0
投票
=LET(certs, A1:D1, has_cert, --(A2:D8 <> ""), certs_maped, IF(has_cert, REPT(certs, has_cert), NA()), img_paths, "/volume/marketing/certs/" & certs_maped & ".png", acc_left, REDUCE( "Collect to left", SEQUENCE(ROWS(img_paths)), LAMBDA(acc, r, VSTACK(acc, TOROW(INDEX(img_paths, r, ), 2))) ), IFNA(DROP(acc_left, 1), "") )

Result

© www.soinside.com 2019 - 2024. All rights reserved.