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

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

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