Excel formula 如何从Excel中的行中获取非连续值列表(忽略空格)?

Excel formula 如何从Excel中的行中获取非连续值列表(忽略空格)?,excel-formula,array-formulas,excel-2011,Excel Formula,Array Formulas,Excel 2011,我正在重组一些数据集,需要在Excel for Mac中检索一行中的非连续值列表。有空白的空间应该被丢弃,所以结果是相同的值的水平列表,在它们之间没有空白单元格。 这些值以6个相邻单元格块的形式显示,这些单元格中散布着不同数量(6的倍数!)的空白单元格。数据是数字的,所以>0就可以了。我曾尝试过调整在线找到的解决方案,比如这一个,但没有成功 我必须通过分别检索第1到第10次出现的值来做类似的事情,并且在转储Hlookup、学习索引+匹配和数组公式,以及调整在线找到的关于列的类似问题的解决方案后,

我正在重组一些数据集,需要在Excel for Mac中检索一行中的非连续值列表。有空白的空间应该被丢弃,所以结果是相同的值的水平列表,在它们之间没有空白单元格。 这些值以6个相邻单元格块的形式显示,这些单元格中散布着不同数量(6的倍数!)的空白单元格。数据是数字的,所以>0就可以了。我曾尝试过调整在线找到的解决方案,比如这一个,但没有成功

我必须通过分别检索第1到第10次出现的值来做类似的事情,并且在转储Hlookup、学习索引+匹配和数组公式,以及调整在线找到的关于列的类似问题的解决方案后,我能够完成这项工作,如

以下是我检索一行中第二个事件的解决方案:

=IFERROR(索引($FR5:$GT5,小)(如果($FR5:$GT5>0,列($FR5:$GT5)-列($FR5)+1,假),2)),“9999”)

其中$FR5:$GT5是我需要从中检索值的范围,9999是我缺少值的代码。我只是想把它扔到那里,像我这样技术有限的人可能会发现它很有用


有什么建议可以帮助我前进吗?最好,我想修改我以前的公式来解决这个问题。我试过,但无法摆脱空白的细胞。我被卡住了!提前感谢。

关于是否要在行或列中显示已整理(无空格)的值,目前还不完全清楚,但从相对行/绝对列单元格引用的组合来看,我怀疑您希望在单元格中开始并正确填充

您的公式非常接近于收集数字序列,而忽略空格和小于或等于零的数字。您只需要调整的k参数(上面示例公式中的2)

如果您将
=列(A:A)
放入单元格并向右填充,您将收到一个整数序列,如1、2、3、4等。类似地,如果您将
=行(1:1)
放入单元格并向下填充,您将再次收到1、2、3、4、,等等。这些子公式中的一个子公式可用于增加SMALL的k,具体取决于您是希望正确填写公式以接收单行中的返回值,还是希望向下填写以接收单行中的返回值。通过这种方式,向右或向下填充将获得第二次、第三次等返回

要接收行中返回的值,请使用此数组公式

根据需要向右填充以捕获所有值。要在列中接收返回的值,请使用此数组公式

根据需要填写以获取所有值

数组公式需要使用Ctrl+Shift+Enter完成↵. 正确输入第一个单元格后,可以像任何其他公式一样填充或向下或向右复制它们


我从来都不是数学杂技(例如,
列($FR5:$GT5)-COLUMN($FR5)+1
)的爱好者,您的原始公式用于确定该公式样式中的列(或行)。我已经在上面的等效公式中对其进行了大幅缩减,但它们的作用相同。

谢谢!这很有效。我真的很感谢你花时间解释为什么它也能起作用:-)我怀疑解决方案就在我面前……哈哈。对于我的第n个解决方案,有一个更优雅的方法也很有帮助。谢谢,这实际上是可行的-除了我必须对多个数据集执行此操作,在每个数据集中执行几次,以便检索不同的范围和数量的值。因此,我需要依靠公式,我可以双重检查等,我甚至有总和/countifs在我的范围内的起源和命运作为安全检查,所有的值都被正确检索!无论如何,谢谢你加入我的Excel技巧包!
=IFERROR(INDEX(5:5, SMALL(IF($FR5:$GT5>0, COLUMN($FR:$GT)), COLUMN(A:A))),"9999")
=IFERROR(INDEX($5:$5, SMALL(IF(FR$5:GT$5>0, COLUMN(FR:GT)), ROW(1:1))),"9999")