我有一个项目列表,如果它们被标记,我需要在报告中显示。正如您在下面的代码中看到的,它只不过是用逗号分隔的数字列表。问题是如果#1不在列表中,则列表前面总是以逗号开头。我可以将逗号移到最后但是如果它不是我计算中的最后一个数字,那么在最后一个数字之后我会遇到同样的问题。有没有人知道如何调整这个,所以逗号只出现在数字之间?如果我能在最后一个数字之后获得一段时间,那将会很棒。
//备件计算
如果($ {1} =“备用”且panelSize≥1;“1”;“”)&
如果($ {2} =“备用”且panelSize≥2;“,2”;“”)&
如果($ {3} =“Spare”且panelSize≥3;“,3”;“”)&
如果($ {4} =“Spare”且panelSize≥4;“,4”;“”)&
答案 0 :(得分:5)
您可以使用List
功能,因为它排除了空项目。只需将您的数字和空字符串作为参数传递给List
,然后用逗号替换换行符,并在nend上添加句号。
Substitute ( List("1" ; "" ; "3" ; "4") ; "¶" ; ", ") & "."
以上结果如下:
1, 3, 4.
在您的示例中,您可以将Case语句用作List的参数:
Substitute ( List(
Case ( ${1} = "Spare" and panelSize ≥ 1 ; "1" ) ;
Case ( ${2} = "Spare" and panelSize ≥ 2 ; "2" ) ;
Case ( ${3} = "Spare" and panelSize ≥ 3 ; "3" ) ;
Case ( ${4} = "Spare" and panelSize ≥ 4 ; "4" ) ;
) ; "¶" ; ", ") & "."
答案 1 :(得分:0)
你可能正在努力解决你正在做的事情,但是如果没有看到更多细节,只需将你的计算结果更改为:
If ( ${1} = "Spare" and panelSize ≥ 1 ; "1, " ; "" ) &
If ( ${2} = "Spare" and panelSize ≥ 2 ; "2, " ; "" ) &
If ( ${3} = "Spare" and panelSize ≥ 3 ; "3, " ; "" ) &
If ( ${4} = "Spare" and panelSize ≥ 4 ; "4, " ; "" )
然后,您可以将最后一个“,”更改为“。”但您可能需要先检查最终值中出现的数量(如果有)。使用Let函数将结果放入一个可以在以后操作的变量中。