-2

对于工作表/表格:

+--------+-------------+------------+----------------+
| Person |    Diag1    |   Diag2    |     Diag3      |
+--------+-------------+------------+----------------+
| A      | 431 - TB    | 652 - PLA  |                |
| B      | 614 - Cough | 884 - Cold | 952 - Headache |
| C      | 747 - BLA   | 949 - POP  |                |
+--------+-------------+------------+----------------+

我有一个查找列:

+------+
| Diag |
+------+
|  431 |
|  650 |
|  949 |
|  555 |
|  484 |
+------+

对于每个人,如果 Diag 查找列中的任何数字位于任何列 Diag1、Diag2 或 Diag 3 中,则该人将从原始表中选择,所有关联列仅包含数字。

在这种情况下,示例输出:

+--------+-------+-------+-------+
| Person | Diag1 | Diag2 | Diag3 |
+--------+-------+-------+-------+
| A      |   431 |   652 |       |
| C      |   747 |   949 |       |
+--------+-------+-------+-------+
4

1 回答 1

1

这可以通过公式来完成,尽管这些公式并不是最漂亮的。使用您的示例数据,假设您有这样的设置:您的原始表在 A:D 列中,您的查找列“Diag”在 F 列中,您的结果在 H:K 列中

Amulya Sharma 的tigeravatar 示例

在单元格 H2 中并向下复制的是这个数组公式。请注意,数组公式必须用 确认,CtrlShiftEnter而不仅仅是Enter. 您会知道它已正确完成,因为在公式栏中您会看到它被花括号 {} 包围。不要试图手动放入花括号。

=IFERROR(INDEX(A:A,SMALL(IF(ISNUMBER(FIND($F$2:$F$6,$B$2:$D$4)),ROW($B$2:$D$4)),ROW(H1))),"")

在单元格 I2 中并上下复制的是这个常规公式(不需要数组条目):

=IF(H2="","",IF(VLOOKUP($H2,$A:$D,MATCH(I$1,$A$1:$D$1,0),FALSE)="","",--TRIM(LEFT(SUBSTITUTE(VLOOKUP($H2,$A:$D,MATCH(I$1,$A$1:$D$1,0),FALSE),"-",REPT(" ",999)),999))))
于 2016-04-26T22:06:31.743 回答