回复:将列表应用于多个列你好 @sagrim ,
我认为您走在正确的轨道上,只是在“ If”语句中有一些错误编码。在您的特定示例中,我认为应该是:
new column ("Org-Approved Certification", Numeric, Nominal) << Formula(
If( Contains (mylist, :"ONE_LICENSE_CODE") | If( Contains (mylist, :"TWO_LICENSE_CODE")), 1, 0
)
); 因此,通常,您希望它是:
If(A | B | C,然后,否则),但您更喜欢它:If(A,然后,否则| B,然后,否则),这不是调用If函数的正确方法。
我制作了一个模拟数据表,我认为它可能与您使用的结构类似-参见附件。另外,我编写了以下脚本,将公式应用于组织批准的认证。我相信这可以按照您的预期工作-我希望如此!
names default to here(1);
mylist={"cert1", "cert2", "cert3","cert4", "cert5", "cert6"};
dt=current data table();
dt:Name("Org-App Cert")<<FORMULA></FORMULA>希望这可以帮助!,
DS
将列表应用于多个列我有一长串的认证缩写词存储为“ mylist”。 我只是想创建一个二进制变量来表示每个工作人员是否都拥有一个缩写出现在清单yes / no中的证书。如果我将列表应用于一列,则代码效果很好。
New Column( "Org-Approved Certification", Numeric, Nominal ) << Formula(
If( Contains( mylist, :"ONE_LICENSE_CODE" ),
1,
0
)
);
但是,如果我想一次将列表应用于多个列,则代码运行时不会出错,但不会产生正确的值。 我有10列,其中任何一列都可能包含首字母缩写词,因此我需要检查列表中所有10列的首字母缩写词。
New Column( "Org-Approved Certification", Numeric, Nominal ) << Formula(
If(
Contains( mylist, :"ONE_LICENSE_CODE" ), 1,
0 | If( Contains( mylist, :"TWO_LICENSE_CODE" )
), 1,
0
)
);
应用列表时,是否可以同时指向多个列?
谢谢!
回复:将列表应用于多个列这很完美。感谢您抽出宝贵的时间来解释我要去哪里错了。这对我有很大帮助:
“ If(A | B | C,然后,否则),但更像是:If(A,然后,否则| B,然后,否则),这不是调用If函数的正确方法。”
回复:将列表应用于多个列大!很高兴它奏效,并有所帮助。