如何根據幾列中的值反轉取消隱藏和取消排除行你好,
我在這裡需要一些指導......
我有兩列 (per_Change) 和 Step(它是基於公式的值),Per_Change 欄位從 -ve 到 +ve 值排序。
在我的腳本中,我需要知道最大行數,因此我創建了從 1-14 的排名列(如附圖所示升序排列),並且需要至少 8 行(從最高排名開始)。
腳步:
1. 排除 Per_Change 欄位中的 -ve 值
2.然後在Col Step中基於一些公式,它會創建一些“-ve”和“+ve”以及一些“null”值。 隱藏並排除 col Step 中的所有 -ve 值。空值已根據 Col Per_Change 隱藏並排除,因為公式將產生 -ve 值。
3.我的要求是至少有8個值(降序)。 在我的範例中,有6 個明確的行狀態(排名9-14)(另外2 行應按降序排列,即取消隱藏/不排除排名8 和7,但如果空值較多且空值較少,則不應在場景中包含「空」值) col 步驟中的 -ve 或 +ve 值)。
步驟 1 和 2,我能夠在 JSL 腳本中執行,但在啟用另外 2 行時遇到問題。
我嘗試使用滯後函數並建立虛擬列以相反的順序啟用,但很難取消選擇其他行。
。
謝謝你!
回覆:如何根據幾列中的值反轉取消隱藏和取消排除行感謝您的及時回覆...它有效!
回覆:如何根據幾列中的值反轉取消隱藏和取消排除行CG,我附加了一個名為 PerChangeExample 的資料表來模擬您的範例。
試試這個腳本
Names Default to Here(1);
dt = Data Table("PerChangeExample");
dt << select where(:Per_change < 0 | IsMissing(:Per_change) );
dt << exclude(1) << hide(1);
dt << select where(:Step < 0 | IsMissing(:Step) );
dt << exclude(1) << hide(1);
dt << clear select;
nexcl = nrow( dt << get excluded rows() );
if ( nrow(dt) - nexcl < 8,
for(i = nexcl, i > nrow(dt) -8 , i--,
if ( !IsMissing(:Step[i]),
dt << Select Rows(i);
dt << Exclude(0) << Hide(0);
dt << clear select;
)
); //end for i
); // end if
nexcl = nrow( dt << get excluded rows() );
if ( nrow(dt) - nexcl < 8, throw() ); //stop program execution if still not enough data.