使用排除的行?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
我有两列。在第一列(站点)中,它旁边有数字 1 或 2。在第二列中,有一些数值。
我创建了一个计算排名和百分位数的函数。首先,该函数在新列中计算排名和百分位数。然后该函数选择站点 1 中所有值为 1 的行并对它们进行计数。然后它选择并排除站点列中值为 2 的所有行,然后计算另一列中的排名和百分位数。所有这些都在起作用。
当我想在选择和排除站点列中值为 2 的行之后计算排名和百分位数时,问题就出现了。它不返回任何错误,但列中没有值。我假设这与我的公式中的 exclude() 表达式有关。如果我从 F3 中删除 if 语句,使其与 F 完全相同,我会得到与其旁边的列相同的值,但如果我保持 F3 的原样,则没有值!
我错过了什么?对不起,如果这很明显......
rp函数=功能( {排,测试} ,
//row --> 数据表中有多少行(设备)?
//测试 - ?我们为哪个测试计算 RP?
当前数据表( dt总结) ;
山口=柱子(测试) ;
新科尔= “反相” ||测试;
F =评估表达式( 100 * (列级(山口) /表达式(排) )) ;
dt总结<<新列(新科尔,数字,公式(名称表达式( F ) ) ) ;
山口=柱子(新科尔) ;
山口<<删除公式;
dt总结<<选择地点( :地点== 1 ) ;
第 1 行=行( dt总结<<获取选定的行()) ;
dt总结<<选择地点( :地点== 2 ) ;
第 2 行=行( dt总结<<获取选定的行()) ;
dt总结<<选择地点( :地点== 2 ) ;
dt总结<<排除;
新科尔= “反相” ||测试|| “站点 1” ;
F1 =评估表达式( 100 * (列级(如果(排除在外() , . ,山口) ) /表达式(第 1 行) )) ;
dt总结<<新列(新科尔,数字,公式(名称表达式( F1 ) ) ) ;
山口=柱子(新科尔) ;
山口<<删除公式;
dt总结<<选择在哪里( :地点== 2 ) ;
dt总结<<取消排除;
dt总结<<选择地点( :地点== 1 ) ;
dt总结<<排除;
新科尔= “反相” ||测试|| “站点 2” ;
F2 =评估表达式( 100 * (列级(如果(排除在外() , . ,山口) ) /表达式(第 2 行) )) ;
dt总结<<新列(新科尔,数字,公式(名称表达式( F2 ) ) ) ;
山口=柱子(新科尔) ;
山口<<删除公式;
dt总结<<选择在哪里( :地点== 1 ) ;
dt总结<<取消排除;
) ;
回复:使用排除的行?嗨,女士,
谢谢你回到我身旁。在我搜索所有排除内容后,我意识到了这一点。最初我认为我必须排除行,所以这就是我选择它的原因。我更喜欢您的代码的简单性,谢谢!
回复:使用排除的行?在 If 语句中直接定位 Site 并避免完全排除行不是更直接吗? 例如:
rp函数=功能({测试} ,
F =评估表达式( 100 * (列级(表达式(柱子(测试))) /栏号( :地点))) ;
dt总结<<新列( “反相” ||测试,数字,公式(名称表达式( F ))) ;
F =评估表达式( 100 * (列级(如果( :地点!= 1 , . ,表达式(柱子(测试)))) /总和( :地点== 1 ))) ;
dt总结<<新列( “反相” ||测试|| “站点 1” ,数字,公式(名称表达式( F ))) ;
F =评估表达式( 100 * (列级(如果( :地点!= 2 , . ,表达式(柱子(测试)))) /总和( :地点== 2 ))) ;
dt总结<<新列( “反相” ||测试|| “站点 2” ,数字,公式(名称表达式( F ))) ;
) ;
回复:使用排除的行?非常感谢吉姆。这是工作!我什至没有想过要看那个。我非常专注于排除行,因为它对我来说是新的并且看不到明显的东西!再次感谢。
回复:使用排除的行?娜塔莉,
我想我找到了。
第二次分配“Col=Newcol”时,我实际上不认为您希望将其分配给新列。您实际上希望将 col 指向 Rp Irgl 列。不是用于站点 1 的名为 Rp Irgl 的新列。您在公式中使用 col 的值,并且您刚刚将其重新分配给站点 1 的 Rp Irgl。
我只是改变了
科尔=新科尔;
col<<删除公式;
至
xcol=新科尔;
xcol<<删除公式;
col=newcol的第三个用法;和 col<< 删除公式;不必更改,因为您没有在公式中创建任何具有 col 值的新列。
回复:使用排除的行?你好娜塔莉_
也许您可以在选择之间使用 wait() 。
否则,您将使用原始表的子集并使用您需要的计算更新原始表来节省时间。只需确保您不覆盖原始表中的数据。
罗恩
回复:使用排除的行?嗨,吉姆,
谢谢你回到我身旁。不幸的是,代码仍然无法正常工作
我注意到在您发送给我的代码中,您没有在 Site 2 选择下添加 exclude(1)。我添加了它,但不幸的是它不起作用。我附上了一个屏幕显示,向您展示我的数据表的样子。前两个 rp 列是我想要的,但最后一个没有任何值。
rp函数=功能( {排,测试} ,
//row --> 数据表中有多少行(设备)?
//测试 - ?我们为哪个测试计算 RP?
当前数据表( dt总结) ;
山口=柱子(测试) ;
新科尔= “反相” ||测试;
F =评估表达式( 100 * (列级(山口) /表达式(排) )) ;
dt总结<<新列(新科尔,数字,公式(名称表达式( F ) ) ) ;
山口=柱子(新科尔) ;
山口<<删除公式;
dt总结<<选择地点( :地点== 1 ) ;
第 1 行=行( dt总结<<获取选定的行()) ;
dt总结<<选择地点( :地点== 2 ) ;
第 2 行=行( dt总结<<获取选定的行()) ;
dt总结<<选择地点( :地点== 2 ) ;
dt总结<<排除( 1 ) ;
新科尔= “反相” ||测试|| “站点 1” ;
F1 =评估表达式( 100 * (列级(如果(排除在外() , . ,山口) )) /表达式(第 1 行) ) ;
dt总结<<新列(新科尔,数字,公式(名称表达式( F1 ) ) ) ;
山口=柱子(新科尔) ;
山口<<删除公式;
dt总结<<选择在哪里( :地点== 2 ) ;
dt总结<<排除( 0 ) ;
dt总结<<选择地点( :地点== 1 ) ;
dt总结<<排除( 1 ) ;
新科尔= “反相” ||测试|| “站点 2” ;
F2 =评估表达式( 100 * (列级(如果(排除在外() , . ,山口) )) /表达式(第 2 行) ) ;
dt总结<<新列(新科尔,数字,公式(名称表达式( F2 ) ) ) ;
山口=柱子(新科尔) ;
山口<<删除公式;
dt总结<<选择在哪里( :地点== 1 ) ;
dt总结<<排除( 1 ) ;
) ;

回复:使用排除的行?娜塔莉,
我拿了你的代码,做了一个非常小的改动;我将 unexclude 和 exclude 更改为 exclude(0|1)。这确保了消息的正确操作。exclude 和 unexclude 实际上是开关,而不是绝对消息。
该代码似乎有效:
rp函数=功能( {排,测试} ,
//row --> 数据表中有多少行(设备)?
//测试 - ?我们为哪个测试计算 RP?
当前数据表(dt总结) ;
山口=柱子( 测试 ) ;
新科尔= “反相” ||测试;
F =评估表达式( 100 * (列级(上校) /表达式(排) )) ;
dt总结<<新列(新科尔,数字,公式(名称表达式( F ) ) ) ;
山口=柱子(新科尔) ;
山口<<删除公式;
dt总结<<选择地点( :地点== 1 ) ;
第 1 行=行(dt总结<<获取选定的行()) ;
dt总结<<选择地点( :地点== 2 ) ;
第 2 行=行(dt总结<<获取选定的行()) ;
dt总结<<选择地点( :地点== 2 ) ;
dt总结<<排除;
新科尔= “反相” ||测试|| “站点 1” ;
F1 =评估表达式( 100 * (列级(如果(排除在外() , . ,上校)) /表达式(第 1 行))) ;
dt总结<<新列(新科尔,数字,公式(名称表达式(F1))) ;
山口=柱子(新科尔) ;
山口<<删除公式;
dt总结<<选择在哪里( :地点== 2 ) ;
dt总结<<排除( 0 ) ;
dt总结<<选择地点( :地点== 1 ) ;
dt总结<<排除( 1 ) ;
新科尔= “反相” ||测试|| “站点 2” ;
F2 =评估表达式( 100 * (列级(如果(排除在外() , . ,上校)) /表达式(第 2 行))) ;
dt总结<<新列(新科尔,数字,公式(名称表达式(F2))) ;
山口=柱子(新科尔) ;
山口<<删除公式;
dt总结<<选择在哪里( :地点== 1 ) ;
dt总结<<排除( 0 ) ;
) ;

回复:使用排除的行?不确定这是否有用,但在旧版本的程序列公式中,对排除项不敏感。
否则,最好基于 << get rows where () 而不是选择进行计算。
罗恩
回复:使用排除的行?编辑:我的解释中的 F3 应该说是 F2。