我正在重构一些数据集,需要在Excel for Mac中连续检索一行非连续值。有些空格的单元格应该被丢弃,因此结果是相同值的水平列表,它们之间没有空白单元格。
这些值出现在6个连续细胞的块中,这些细胞散布着不同数量(6倍的倍数)的空白细胞。数据是数字,因此> 0就可以了。我尝试过调整在线发现的解决方案,例如here,但没有运气。
我必须通过分别检索第1到第10次出现的值来做类似的事情,并且能够在转储hloookup,学习索引+匹配和数组公式以及调整在线找到的解决方案类似的问题后实现这一点,例如this。
这就是我连续检索第二次出现的解决方案:
= IFERROR(INDEX($ FR5:$ GT5,SMALL(IF($ FR5:$ GT5大于0,COLUMN($ FR5:$ GT5)列($ FR5)+ 1,FALSE),2)), “9999”)
其中$ FR5:$ GT5是我需要检索值的范围,而9999是我的缺失值代码。我以为我会把它扔到那里,那些技能有限的人可能会觉得它很有用。
有任何提示可以帮助我继续前进吗?最好,我想调整我以前的公式来解决这个问题。我尝试但无法摆脱空白细胞。我卡住了!提前谢谢。
答案 0 :(得分:1)
关于是否要在行或列中显示整理(无空白)值,我们并不完全清楚,但我怀疑您要从中开始的相对行/绝对列单元格引用的组合一个单元格,并填写正确。
您的公式非常接近于收集数字序列,同时忽略小于或等于零的空格和数字。您只需要调整SMALL function的 k 参数(上面示例公式中的 2 )。
如果你将=COLUMN(A:A)
放在一个单元格中并向右填充,你将收到一系列整数,如1,2,3,4等。同样,如果你将=ROW(1:1)
放在一个单元格中并填写你将再次收到1,2,3,4等。这些子公式中的一个可用于增加你的SMALL的 k ,具体取决于你是否要填写你的公式接收权利单个行中返回的值或填充以在单个列中接收返回的值。以这种方式,向右或向下填充将获得第二,第三等返回。
要连续接收返回的值,请使用此数组公式,
=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")
根据需要填写以捕获所有值。
需要使用 Ctrl + Shift + Enter↵来最终确定数组公式。一旦正确进入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。
我从未成为数学杂技(例如COLUMN($FR5:$GT5)-COLUMN($FR5)+1
)的粉丝,原始公式用于确定该公式样式中的列(或行)。我已经在上述等效公式中大幅削减了它,但它们完全相同。