MS Excel:列出符合特定条件的所有单元格值

时间:2016-07-25 16:57:13

标签: excel function

我有一些工作表,其中交易号码互相引用。我需要一个公式,为每个交易列出哪些其他交易与之相关。每个交易号码都有一个四字母代码(例如EXPE表示费用,TRAV表示旅行等),然后是三位数字。这是事务标识符,每个事务都有唯一的标识符,例如。 EXPE-001,TRAV-010等。每个交易都可以连接到其他交易。因此,例如,如果某个费用与某个旅行相关,则EXPE-001可以连接到TRAV-010。

我的数据设置如下表所示。 “关联事务”列是我列出特定事务所涉及的所有事务的位置,而“其他事务#”列是Excel将输入与此特定事务相关的所有其他事务的位置。 Other Transaction #s列中的单元格是我需要Excel为我自动填充的。

在费用工作表中

Trans. #   Date         Cost    Related Transactions   Other Transaction #s
EXPE-001   2016-07-10   $1.12   TRAV-010               ____, ____, ____
EXPE-002   2016-07-10   $18.41  TRAV-010               ____, ____, ____
EXPE-003   2016-07-10   $7.80   TRAV-010               ____, ____, ____

在旅行工作表中,

Trans. #   Date         Cost    Related Transactions   Other Transaction #s
TRAV-001   2016-07-10   $180.01 EXPE-001, EXPE-002     ____, ____, ____
TRAV-002   2016-07-10   $31.16  EXPE-002, EXPE-003     ____, ____, ____
TRAV-003   2016-07-10   $190.49 EXPE-003               ____, ____, ____

如您所见,每个交易都可以在任意数量的其他交易中引用,每个交易也可以引用任意数量的其他交易。这就像一个大网。让这更令人困惑的是Trans中的数据。 #实际上存储为一个数字,例如。 1,2,3,仅显示其代码和前导0的适当数量。

我知道如何获取数字,添加交易代码,并用零填充它。我使用TEXT(例如,"*EXPE-"&TEXT(A12, "000"&"*"使用星号通配符,以便子字符串可以出现在单元格中的任何位置。)

无论如何,我一直在使用MATCH函数来获取行范围内特定字符串的行号。我一直在玩INDEXIFSMALL函数。但这太令人困惑了,部分原因是因为我认为涉及了很多函数,并试图使这个函数成为一个函数(通过按CTRL + SHIFT + ENTER),以便Excel列出多个范围内的多行。到目前为止,我的尝试都让我得到了#REF !,#N / A,#VALUE或来自Excel的直接错误消息。对于其中只有6个事务的表,我将使用3-8的行范围(有两行标题)。在各个部分中,我得到以下内容,所有这些都不起作用或只做一小部分工作:

=INDEX(A3:A8, SMALL(IF((INDEX(A3:A8, , $C$3, 1)="EXPE" & TEXT($A$3, "000")), ROW(A3:A8), ""), ROWS(A19:$A$19)), , 1)
=MATCH(A8, A3:A8)
=INDEX(A3:P37, MATCH(A8, A3:A37))

但我绝对迷失在此。似乎我甚至无法让第1步工作。我甚至没有想出如何在一个工作表上执行此操作,更不用说多个工作表了。有没有人知道如何解决这个疯狂的公式?

1 个答案:

答案 0 :(得分:0)

你在说Trans。 #column被格式化为分别显示1,2,3作为TRAV-001,TRAV-002,TRAV-003?如果是这样,MATCH将只匹配1,2,3的行。

我要么输入数据作为TRAV-001 ...或者添加另一列,输入1并使另一列正确格式化交易号(= EXPE - “& TEXT(A12,”000“&” *“)。或者,只需匹配1,2,5等