回复:將列表應用於多個列你好 @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函數的正確方法。”
回复:將列表應用於多個列大!很高興它奏效,並有所幫助。