簡體   English   中英

根據行和列的交集值返回值

[英]Return values, based on value of an intersection of a row and column

我想基於等於“是”的行和列的交集返回一個標簽。

            |       Location       |    
ID | Tool   | Wall | Bin | Toolbox | Count   
---+--------+------+-----+---------+-------
1. | Axe    | YES  |     |         | 1  
2. | Hammer |      |     | YES     | 5      
3. | Pliers |      |     | YES     | 2      
4. | Nails  |      | YES |         | 500        
5. | Hoe    | YES  |     |         | 2  
6. | Screws |      | YES |         | 200    
7. | Saw    | YES  |     |         | 3

工具箱中有什么? (想要的結果)

Axe,Wall, 1 
Hammer, Toolbox, 5
Pliers,Toolbox, 2
Nails,Bin, 500
Hoe, Wall, 2
Screws, Bin, 200
Saw, Wall, 3

我還希望能夠添加工具和位置?

如果不使用VBA,這會有些麻煩,但是如果您不介意helper列,則可以使用。 我不建議嘗試在單個數組公式中執行此操作,因為文本字符串很難在數組公式中使用。 也就是說-如果您有一組數字,則可以通過多種方式(最小,最大,平均,總和等)將其轉換為單個結果。 但是,如果使用字符串數組,則很難使用。 特別是,沒有簡單的方法來連接字符串數組。

因此,請使用幫助程序列。 假設A列=工具名稱,B列=檢查在牆上,C列=檢查在箱中,D列顯示在工具箱中,E列顯示可用編號。

格式說明

首先,我會建議您使用TRUE / FALSE,而不是“ yes” /“ no”。 這是因為在Excel公式中更容易使用TRUE / FALSE。 例如,如果要在A3 =“ yes”時添加A1 + A2,則可以這樣進行:

=IF(A3="yes",A1+A2)

但是,如果要檢查A3 = TRUE,可以簡化以下操作:

=IF(A3,A1+A2)

在這里,我們不需要對“是”進行硬編碼,因為A3本身將為TRUE或FALSE。 還考慮如果A3> 5,是否要使單元格為“是”,否則為“否”。 您可以這樣做:

=IF(A3>5,"yes","no)

或者,如果您使用TRUE / FALSE,則可以簡單地使用:

=A3>5

但是,我假設您保持當前的格式(我也建議您僅使用一個單元格,其中顯示“ toolbox” /“ bin”等,而不是4列,其中1表示“ yes”,但是我們還假定這需要采用這種方式。

返回您的問題

將其放在第一個單元格的F列中的F2中:

=Concatenate(A2," ",INDEX($B$1:$D$1,MATCH("yes",B2:D2,0))," ",E2)

串聯將文本字符串組合成新的單個文本字符串。 您也可以使用&; 例如:A2和“”等,但是由於有這么多術語,這很容易閱讀。 索引查看標題行1,並從第一列返回與當前行中“是”匹配的項目。

然后將以下內容放到F3中並向下拖動:

=Concatenate(F2," ", A2," ",INDEX($B$1:$D$1,MATCH("yes",B2:D2,0))," ",E2)

這在上方的行和當前行之間放置了一個空格。 相反,如果您想使每行顯示在換行符之后,請使用以下命令:

=Concatenate(F2,CHAR(10), A2," ",INDEX($B$1:$D$1,MATCH("yes",B2:D2,0))," ",E2)

暫無
暫無

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

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