根據列位置幫助列公式?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我有一個列名稱的字符串列表。我想在數據表中確定它們的列位置(i),然後添加一個帶有公式的新列(Column(i)+ Column(i + 1))。我的代碼看起來像這樣:
| 一個 | 乙 | C | d | Ë | F |
|---|
1 | 2 | 3 | 4 | 五 | 6 |
| 1 | 2 | 3 | 4 | 五 | 6 |
| 1 | 2 | 3 | 4 | 五 | 6 |
cols = dt <<獲取列名稱(St
環);
list = {“B”,“D”};
n = N項(列表);
locate = {}:
對於(i = 1,i <= n,i ++,
定位 = Loc(dt,list );
新列(“新”,公式(列(定位 )+列(找到 + 1)))
);
我遇到了麻煩,因為Loc()返回一個矩陣而Column()只能評估一個數字。我希望我的最終數據表看起來像這樣:
| 一個 | 乙 | C | d | Ë | F | 新 | 新2 |
|---|
| 1 | 2 | 3 | 4 | 五 | 6 | 五 | 9 |
| 1 | 2 | 3 | 4 | 五 | 6 | 五 | 9 |
| 1 | 2 | 3 | 4 | 五 | 6 | 五 | 9 |
| 1 | 2 | 3 | 4 | 五 | 6 | 五 | 9 |
誰能幫我嗎?
Re:根據列位置幫助列公式?謝謝您的幫助。對此,我真的非常感激。
Re:根據列位置幫助列公式?如果刪除了依賴列,則公式列自然不起作用。如果要刪除公式使用的列,那麼首先使用列公式的重點是什麼?如果你只是在總和之後並且對列公式提供的動態優勢不感興趣,我建議你不要使用公式(這也使這個任務變得容易)。
在上面的表格中嘗試這個:
名單 = { “B” , “d” } ;
定位 = EXPR ( 祿 ( COLS ,名單 [ 一世 ] ) 1 ] ) ;
對於 ( 一世 = 1 ,一世 <= N項 ( 名單 ) ,一世 ++,
COLS = DT << 獲取列名稱 ( 串 ) ;
關口 = DT << 新欄目 ( “新” ,數字 ) ;
對於每一行 ( 關口 [] = 柱 ( 定位 )[] + 柱 ( 定位 + 1 )[] ) ;
DT << 刪除列 ( 柱 ( 定位 ) ,柱 ( 定位 + 1 ) ) ;
關口 << 設定名稱 ( 名單 [ 一世 ] ) ;
) ;
Re:根據列位置幫助列公式?非常感謝!這種方法非常有效。
我也有一個後續問題。我想對這個新表的列進行一些更改:
| 一個 | 乙 | C | d | Ë | F | 新 | 新2 |
|---|
1 | 2 | 3 | 4 | 五 | 6 | 五 | 9 |
| 1 | 2 | 3 | 4 | 五 | 6 | 五 | 9 |
| 1 | 2 | 3 | 4 | 五 | 6 | 五 | 9 |
有沒有辦法刪除總計為創建“新建”和“新建2”列的4列,並使用list = {“B”,“D”}重命名它們,以便生成的表如下所示:
Re:根據列位置幫助列公式?通過jsl將列變量引入列公式並不簡單。公式必須與最終表達式完全相同,即不會自動計算任何內容。訣竅是定義和操作表達式(或字符串),然後使用eval,parse等的正確組合。
下面是一個似乎有效的例子。它有點循環,因為它按名稱定位列,然後再次命名,然後進行解析。座位!我找不到更簡單的程序,但如果有人有更優雅的解決方案想法,我感興趣。
//製作示例表
DT = 新表 ( “測試” ,
添加行 ( 3 ) ,
新欄目 ( “一個” ,數字 ,連續 ,格式 ( “最好” , 1 ) ,設定值 ( [ 1 , 1 , 1 ] ) ) ,
新欄目 ( “B” ,數字 ,連續 ,格式 ( “最好” , 12 ) ,設定值 ( [ 2 , 2 , 2 ] ) ) ,
新欄目 ( “C” ,數字 ,連續 ,格式 ( “最好” , 12 ) ,設定值 ( [ 3 , 3 , 3 ] ) ) ,
新欄目 ( “d” ,數字 ,連續 ,格式 ( “最好” , 12 ) ,設定值 ( [ 4 , 4 , 4 ] ) ) ,
新欄目 ( “E” ,數字 ,連續 ,格式 ( “最好” , 12 ) ,設定值 ( [ 五 ,五 ,五 ] ) ) ,
新欄目 ( “F” ,數字 ,連續 ,格式 ( “最好” , 12 ) ,設定值 ( [ 6 , 6 , 6 ] ) )
) ;
//腳本從這裡開始
COLS = DT << 獲取列名稱 ( 串 ) ;
名單 = { “B” , “d” } ;
//找到列expr
定位 = EXPR ( 祿 ( COLS ,名單 [ 一世 ] ) 1 ] ) ;
//公式為expr的新列
F = EXPR ( 新欄目 ( “新” ,式 ( EXPR ( 解析 ( 柱 ( 定位 ) << 得到名字 ) )
+ EXPR ( 解析 ( 柱 ( 定位 + 1 ) << 得到名字 ) ) ) ) ) ;
//循環列表
對於 ( 一世 = 1 ,一世 <= N項 ( 名單 ) ,一世 ++,
EVAL ( Eval Expr ( F ) )
) ;