我使用列标题标题作为另一个单元格中逗号分隔的内容。我使用的是 Excel 2016。我有一个名为 StudentCourse 的表格,为了更好的说明,请参阅下面的示例布局:
[姓名][数学][地理][生物][费用][修复] Ram 非常差 好 好 无薪 紧急:数学、费用 大坝 中立 好 坏 付费 紧急:数学、生物 Rik 好 好 好 已付薪 确定:不紧急 Nik 好 好 好 部分紧急:费用
主题列的值来自下拉菜单,其中包含选项 Good、Neutral、Bad 和 Very Bad,如果选择值 Neutral、Bad 或 Very Bad,则Fixes 列将更新带有前缀 Urgent: 和列标题名称(Math、Geo 或 Fees),具体取决于需要修复的内容。如果不需要修复,则Fixes列的值将为Ok:不紧急。
“费用”栏也遵循相同的概念。这意味着,如果为费用列值选择部分(表示部分付款)或未付款下拉选项,则费用将添加到修复列。简而言之,Fixes 列可以根据为其他列选择的值自动选择值,从而轻松地对需要特殊处理的内容进行排序。
我还应该提到,我是 Excel 新手。
假设表格位于
[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$1, "" )
& IF( $C2<>"Good", ", " & $C$1, "" )
& IF( $D2<>"Good", ", " & $D$1, "" )
& IF( $E2<>"Paid", ", " & $E$1, "" ), ", ", "", 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$1:$E$1, TEXT(,) ) ) )
同时按住
ctrl+shift+enter输入
FormulaArray
,如果输入正确,公式将被包裹在{
和}
中。
如果您在 H:I 列中列出可接受的数据(如下例)。你可以使用:
=IF(TEXTJOIN(", ",1,IF(INDEX($I$1:$I$4,MATCH($B$1:$E$1,$H$1:$H$4,0))=B2:E2,"",$B$1:$E$1))="","OK: No urgent","Urgent: "&TEXTJOIN(", ",1,IF(INDEX($I$1:$I$4,MATCH($B$1:$E$1,$H$1:$H$4,0))=B2:E2,"",$B$1:$E$1)))