首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从满足条件的范围中删除多行

从满足条件的范围中删除多行
EN

Stack Overflow用户
提问于 2022-03-22 23:10:10
回答 1查看 40关注 0票数 1

我对在excel中做“高级”的事情很陌生,所以我自己也想不出这一点。我正在使用以下谷歌表格电子表格:

基本上,我想实现的元素计数算法如下:

  • 为每个元素组(I、II、III、IV)找到最高的元素值。
  • 将这些元素值相加。
  • 设M为所找到的唯一元素组的总数。
  • 从所有其他剩余元素值中删除每个组中的M最高值,与所遇到的7-M最高值之和,忽略元素组。

F 210

这应该适用于任何M=1,2,3,4,而7可以被从5到10之间的任意数字所取代。

在这种情况下,每个群体的最高要素是:

I: 0.3 - II: 0.1 - III: 0.3 - IV: 0.2

然后,我们查看这些值以外的最高值,直到我们总共有7个值,也就是说,从列表中删除这些值,我们将查看剩下的3个最高值。它们分别是0.3倍和0.2倍。总数为1.7。

我已经尝试过这样做,只考虑到元素组IV,也假设它只出现一次。我不确定它在这种情况下是否有效,但除此之外,我还试图对其进行扩展,使其适用于考虑了所有元素组的算法。我用的是

=IFERROR(QUERY({ROW(B2:D11),B2:D11},"select Col1 where Col2='IV' limit 1",0),0) + sum(sortn(FILTER(D2:D11, ROW(D2:D11)<>ArrayFormula(IFERROR(QUERY({ROW(B2:D11),B2:D11},"select Col1 where Col2='IV' limit 1",0),0))), 6, 0, 1, false))

这个想法是,如果IV存在的话,我就把它的值加起来,然后在一个排序列表的前6位上加和,这个列表中的IV条目值被删除。

有谁知道如何同时删除多个行,或者任何其他方法使此算法工作?我在SQL或类似的方面没有多少经验,但我确信我可以使用dataframes或lists使这个算法在Python中工作。

编辑:我确实想过/试图递归地使用过滤器(FILTER.)等4次,从一个特定的元素组中筛选出一个值,计算找到这样一个元素的次数,并创建一个长度为7-M的排序列表来再次对其进行求和,但是我没有让它工作,我也不确定这是否是正确的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-22 23:24:46

为每个元素组(I、II、III、IV)找到最高的元素值。

代码语言:javascript
复制
=SORTN(SORT({A2:A, C2:C}, 2, 0), 9^9, 2, 1, 1)

对这些元素值进行求和。

代码语言:javascript
复制
=SUM(SORTN(SORT({A2:A, C2:C}, 2, 0), 9^9, 2, 1, 1))

设M是找到的唯一元素群的总数

代码语言:javascript
复制
=COUNTUNIQUE(A2:A)

最新情况:

代码语言:javascript
复制
=SUM(SORTN(FILTER(C2:C, NOT(REGEXMATCH(A2:A&" "&C2:C&" "&
 COUNTIFS(A2:A&C2:C, A2:A&C2:C, ROW(A2:A), "<="&ROW(A2:A)), TEXTJOIN("|", 1, 
 QUERY(TRANSPOSE(SORTN(SORT({A2:A, C2:C}, 2, 0), 9^9, 2, 1, 1)),,
 9^9)&" 1")))), 7-COUNTUNIQUE(A2:A), 0, 1, 0))+
 SUM(SORTN(SORT({A2:A, C2:C}, 2, 0), 9^9, 2, 1, 1))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71580014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档