大家好,
不知道為什麼我很難找到正確的解決方案,但是當每列缺少不在同一行上的條目時,我很難組合文字列 - 但所有行都對齊。 請參閱下面的螢幕截圖。

例如,如果一行有條目 A、B 或 C,那麼如果它位於列中(例如:C1 或 :C2),則兩列的行是相同的。 對於我的資料表,我有許多文字列,每個列都有一些缺少的行條目,請參見上面的範例。 我正在嘗試使用一個列公式,該公式使用 :C1 或 :C2 到 :CN 的所有不同文字條目。
我嘗試使用以下列公式,但當 :C1 為空時它不會填充該列

我認為解決方案非常簡單,但我沒有找到解決方案,並且對如何解決這個問題一無所知。 這樣做的好處是,對於我的資料表中的 :C1 到 :CN 列,如果一行不為空,則該行的所有列都將具有相同的字元。 例如,所有欄位都有第 4 行的條目 D(除非它遺失)。 我希望透過使用每個 :CN 列的非缺失條目來最終得到一個沒有缺失值的列,如上面的列 :Correct。
希望這是有道理的。 任何幫助深表感謝。
謝謝!,
DS
Is Empty() 檢查單元格是否存在。你需要 Is Missing()
我不確定它有多快,但您可以使用關聯數組來消除所有重複。 這不是最乾淨的解決方案,但它可能有效
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(3),
Compress File When Saved(1),
New Column("Column 1", Character, "Nominal", Set Values({"A", "B", "C", ""})),
New Column("Column 2", Character, "Nominal", Set Values({"A", "", "", ""})),
New Column("Column 3", Character, "Nominal", Set Values({"A", "", "C", ""}))
);
dt << New Column("Col", Character, Nominal, Formula(
aa = Associative Array(Eval List({:Column 1, :Column 2, :Column 3}));
(aa << get keys)[N Items(aa)];
));
</CODE></P>
<P> </P>
<P>其他應該工作得相當好的選項是找到第一個不丟失的值,然後使用它(構建一個列表,使用 loc 查找非丟失索引,如果找到,則使用它從列表中獲取值,如果未設置它作為失蹤)</P>
<PRE><CODE class=" language-jsl">dt << New Column("Col2", Character, Nominal, Formula(
l = Eval List({:Column 1, :Column 2, :Column 3});
ok_idx = Loc(!Matrix(IsMissing(l)));
If(N Items(ok_idx) > 0,
l[ok_idx][1];
,
""
)
));
您也可以使用空格連接

然後創建其他列,即第一個單字


類似的事情可以使用 Cols/Utilities/Combine Columns 和 First Word 欄位公式來完成
你好@tx尼爾森和@jthi ,
感謝您的快速回覆。 我決定去@tx尼爾森的解決方案—好又簡單。 我腦子裡認為條件 Is Missing() 只適用於數字,所以我甚至沒有嘗試過。 我知道這應該是相對簡單的。
謝謝!,
DS