簡體   English   中英

Excel-從一列中水平返回一行中的多個匹配值

[英]Excel - Return multiple matching values from a column, horizontally in one row

我有一個excel公式,該公式應該可以工作,但返回#VALUE,我不知道為什么。

我有這張桌子:

       A        B
1 |          |     |
2 | Oranges  |  1  |
3 | Apples   |  2  |
4 | Grapes   |  3  |
5 | Oranges  |  4  |
6 | Apples   |  5  |
7 | Grapes   |  6  |
8 | Apples   |  7  |

我想檢查A列中的匹配值,例如“ Apples”,“ Oranges”等,並在一行中返回B列中的所有相應值:

輸出應該是這樣,但我只會得到#VALUE:

       A         B     C     D  
11 | Apples   |  2  |  5  |  7  |
12 | Oranges  |  1  |  4  | #NUM|

這是公式:

= INDEX($ B $ 2:$ B $ 8,小(IF($ A $ 11 = $ A $ 2:$ A $ 8,ROW($ A $ 2:$ A $ 8)-ROW($ A $ 2)+1),COLUMN( A1)))

希望該公式對您有所幫助。您需要按Ctrl + Shift + Enter才能使該公式正常運行,您需要按名稱訂購PRODUCT列才能使該公式正常運行。

=IF(COLUMN()-4<=COUNTIF($A$2:$A$8,$D2),INDEX($B$2:$B$8,MATCH($D2,$A$2:$A$8,0)+COLUMN()-5),"")

-4引用要在其中查找值的列,而-5引用要在其中獲取值的列。

列“ c”為空

COL    A         B          C         D           E       F        G      H
    PRODUCT  DESCRIPTION         uniquevalues  descr1   descr2  descr3  descr4
    oranges      1                 oranges        1       2     
    oranges      2                 apples         3       4        5    
    grapes       6                 grapes         6       7     
    grapes       7                      
    apples       3                      
    apples       4                      
    apples       5                      

我希望還不晚:P ..不客氣。

為避免#NUM錯誤,請使用此修改公式

=IFERROR(INDEX($B$2:$B$8,SMALL(IF($A$11=$A$2:$A$8,ROW($A$2:$A$8)-ROW($A$2)+1),COLUMN(A1))),"")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM