使用 Table Header 作为单元格中的内容

Use Table Header as Content In a Cell

我在另一个单元格中使用列 header 标题作为逗号分隔的内容。我正在使用 Excel 2016。我有一个名为 StudentCourse 的 table,为了更好地说明,请参见下面的示例布局:

[Name]     [Math]     [Geo]     [Bio]     [Fees]     [Fixes]
Ram         Very Bad   Good      Good      Unpaid     Urgent: Math, Fees
Dam         Neutral    Good      Bad       Paid       Urgent: Math, Bio
Rik         Good       Good      Good      Paid       OK: Not Urgent
Nik         Good       Good      Good      Partial    Urgent: Fees

主题列的值来自下拉菜单,该菜单具有选项好、中立、差和非常差,如果值中立,选择差或非常差,然后 修复 列将更新为前缀 紧急: 和列 header 名称(数学、地理或费用)取决于需要修复的内容。如果不需要修复,那么 Fixes 列的值将为 Ok: Not Urgent.

费用栏也遵循相同的概念。这意味着如果为费用栏值选择了 部分(表示部分付款)或未付款 下拉选项,则费用将添加到修复栏。因此,简而言之,Fixes 列用于根据为其他列选择的内容自动选择值,从而轻松地对需要特别指定的内容进行排序。

我还应该提到我是 Excel 的新手。

如果您在 H:I 列中列出可接受的数据(如下例)。你可以使用: =IF(TEXTJOIN(", ",1,IF(INDEX($I:$I,MATCH($B:$E,$H:$H,0))=B2:E2,"",$B:$E))="","OK: No urgent","Urgent: "&TEXTJOIN(", ",1,IF(INDEX($I:$I,MATCH($B:$E,$H:$H,0))=B2:E2,"",$B:$E)))

假设 table 位于 [A1:E9] 并且 OP 确认没有 [BLANK] 单元格。在[F2]中输入这个公式,复制到[F3:F9].

Excel 2016

= IF( SUMPRODUCT( ($B2:$E2<>{"Good","Good","Good","Paid"})*1 )=0, "Ok: Not Urgent",
 "Urgent: " & SUBSTITUTE(
 IF( $B2<>"Good", ", " & $B, "" )
 & IF( $C2<>"Good", ", " & $C, "" )
 & IF( $D2<>"Good", ", " & $D, "" )
 & IF( $E2<>"Paid", ", " & $E, "" ), ", ", "", 1 ) )

Excel 2019 (公式数组)

= IF( SUMPRODUCT( ($B2:$E2<>{"Good","Good","Good","Paid"})*1 )=0, "Ok: Not Urgent",
 "Urgent: " &
 TEXTJOIN( ", ", TRUE, IF( ($B2:$E2<>{"Good","Good","Good","Paid"}), $B:$E, TEXT(,) ) ) )

FormulaArray按住ctrl+shift+enter 同时,如果输入正确,公式将包含在 {} 中。