excel做MATCH了解<&gt ;?

时间:2017-11-30 17:44:03

标签: excel

我的数据包含很多0和几个值> 0在其中。我需要获得这些非零值。

我想知道MATCH是否可以理解MATCH("<>0"或匹配数字,因为我可以将0更改为文本,如“空白”或其他内容。

编辑:这只是我想要获得的一部分,如果它会有所帮助,我可以解释一下我想要从我的数据中提取什么。以下是我的数据的样本。

Sample Data Example

我需要的是在我的表中找到所有非零值并返回相应的列和行标题以及实际值。与我发现的this post类似,我目前正在使用这些公式的变体。作为临时解决方案,我在非零值前加上下划线以使用MATCH("_*"

我正在使用的公式

=IF(ROWS(B$100:B100)>COUNTIF($B$2:$DMV$91,"<>0"),"",INDEX(A$2:A$91,SMALL(IF($B$2:$DMV$91<>0,ROW($B$2:$DMV$91)-ROW($B$2)+1),ROWS(B$100:B100))))

=IF(B101="","",INDEX(B$1:DMV$1,MATCH("_*",INDEX(B$2:DMV$91,MATCH(B101,A$2:A$91,0),0),0)))

所需输出

日期|项目|访问次数

11/1/2017 | Item1 | 1

11/2/2017 | Item2 | 1

11/3/2017 | Item3 | 8

11/3/2017 | Item4 | 4

不确定这些信息是否有用,但作为额外信息,如果有人能指出我如何在单元格中显示实际值的正确方向,那就太棒了。

1 个答案:

答案 0 :(得分:0)

您可以使用此数组公式从垂直数组中删除0(例如范围A1:A10):

= INDEX(A1:A10,N(IF({1},MODE.MULT(IF(A1:A10<>0,(ROW(A1:A10)-MIN(ROW(A1:A10))+1)*{1,1})))))

或者此数组公式从水平数组中移除0(例如范围A1:J1):

= INDEX(A1:J1,N(IF({1},TRANSPOSE(MODE.MULT(IF(A1:J1<>0,(COLUMN(A1:J1)-MIN(COLUMN(A1:J1))+1)*{1;1}))))))

请注意这些是数组公式,因此您必须在输入此公式后按 Ctrl + Shift + Enter 而不是 Enter

这假设您将此结果用作中间结果,因为此结果返回一个数组(不能全部显示在一个单元格中)。