【问题标题】:Getting number and off setting numbers from array in Excel从Excel中的数组获取数字和关闭设置数字
【发布时间】:2021-08-05 23:35:44
【问题描述】:

我在一列中有一组数字,如下所示:

我只想要存在对应负数的数字。如果数字存在2次,而负数只存在一次,那么我想保留一个正数和一个负数。同样,如果数字存在 3 次,而负数只出现两次,那么我想要 2 组数字,包括正数和负数。在这种情况下,我想得到输出:

5 2 -2 -5

数字顺序与我无关。请不要使用 VBA。您可以创建多个列并在最后应用过滤器。


感谢您的回复,但我想在值旁边的列中获取数据。喜欢:

5
2
-2
-5

请帮忙。

【问题讨论】:

  • @Neeraj 关于您最近的编辑,您正在更改范围以将配对列在彼此旁边而不是列出?

标签: excel filter data-cleaning


【解决方案1】:

这是另一个 Office 365 解决方案:

  1. 将数据范围命名为DATA
  2. 把这个公式放在任何地方:=CONCAT(REPT(-ROW(A1:A100)&" "&ROW(A1:A100)&" ",COUNTIF(DATA,"="&ROW(A1:A100)*IF(COUNTIF(DATA,"="&-ROW(A1:A100))<COUNTIF(DATA,"="&ROW(A1:A100)),-1,1))))

这会将这些对输出到一个单元格中。

这里是稍作修改的第 2 步,其中不包括重复项:=CONCAT(IF((COUNTIF(DATA,"="&-ROW(A1:A100))>0)*(COUNTIF(DATA,"="&ROW(A1:A100))>0),-ROW(A1:A100)&" "&ROW(A1:A100)&" ",""))

看起来像这样:

数据不需要排序。这两种方法都最多可以使用 100 个,但您可以通过将 A100 更改为 A1000 或任何您需要的方式轻松扩展它。

【讨论】:

  • 嗨@Robson你提到这可以通过调整代码达到1000,但是这个解决方案不会达到在某个点可以容纳多少个字符的字符限制吗?我喜欢这里的创意,但很好奇它的局限性
  • 是的 - 每个单元格的字符数限制为 32,767 个字符,这是相当多的,但如果有足够的数据,这可以达到。我只使用了单单元格输出,因为这就是它在原始问题中的格式。我首选的解决方案是使用 VBA,然后在单独的单元格中输出结果。
  • 这就是我的想法,虽然 32K 是一个相当高的数量,但在单个单元格中看到这么多,我会感到头晕目眩。我没有看到任何提到需要在单个单元格中的结果,只有一个列,除非它被编辑超出范围。
  • 我也是。我总是喜欢每个单元格有一个数据。不幸的是,原始问题在该行之后没有任何内容,因此输出仅被描述为“5 2 -2 -5”
  • 那么可以理解,我就在你身边,每个单元格 1 个,但创建唯一键以从中提取其他数据时除外。
【解决方案2】:

使用vlookup 公式识别行,您可以使用Filter & Unique 公式获取列表或数据透视表。

首先,在您的数据旁边使用公式:

=vlookup(A1*-1,$A$1:$A$1,1,0)

对于非 365

这将为每个没有匹配的实例产生一个错误。此时您可以过滤以从现有表中获取您的列表。您还可以在功能区的 Data 选项卡下创建数据透视表并插入数据透视表。从那里过滤 #N/A 以获得没有隐藏行的独占列表。

对于 365

您也可以使用以下公式组合来获取排他列表。

=UNIQUE(FILTER(B1:B8,ISNUMBER(B1:B8)),0,0)=UNIQUE(FILTER($B$1:$B$8,ISNUMBER($B$1:$B$8)),0,0) 应该产生相同的结果

正如 ScottCraner 所说,您可以通过稍微修改公式来绕过 365 中的辅助列:

=UNIQUE(FILTER(A1:A8,ISNUMBER(MATCH(-A1:A8,A1:A8,0)),"")

这里的Match 的作用类似于Vlookup,但在公式中包含了该逻辑,因此在我看来这是一个更清洁的解决方案。

使用您的数据,结果是 { -5,-2,2,5 }

这些是溢出公式,因此您只需将其放在一个位置,它就会将公式扩展到下面输入它的相邻单元格,无论需要多少单元格来列出所有出现的唯一数字。它考虑了负面因素等。这可能是一个 365 公式,因此如果您使用的是其他版本的 excel,它可能无法正常工作。

编辑:调整说明以完全解决问题。

【讨论】:

  • 顺便说一句:使用 O365,您不需要帮助器:=UNIQUE(FILTER(A1:A8,ISNUMBER(MATCH(-A1:A8,A1:A8,0)),""))
  • @ScottCraner 如果我修改我的答案以包含这个,你会好吗?不确定这样做的礼仪是什么,但我尽量避免使用助手。
  • 是的,如果我发表评论,那是因为我的回答没有足够的区别来保证它。如果您想在实际答案中使用我的评论,请随意。
  • @ScottCraner,谢谢。明白了。
猜你喜欢
  • 2021-03-14
  • 1970-01-01
  • 2020-11-04
  • 2016-12-12
  • 1970-01-01
  • 2017-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多