Return 符合条件的行中最右边的值
Return rightmost value in a row with conditions
我有一个可变长度的值列表(列可能会输出到 ValueN,这个 sheet 会随着时间的推移而扩展)。例如:
Subject Value1 Value2 Value3 Value4
Sub1 Pass Fail Fail
Sub2 Pass NA
Sub3 Fail Fail Fail Fail
Sub4 NA NA NA NA
Sub5 NA PASS NA
我需要创建一个新列来报告最右边的通过或失败,并且仅在所有列均为 NA 时才报告 NA(没有行将所有列都留空),例如:
Subject Value1 Value2 Value3 Value4 New Column
Sub1 Pass Fail Fail Fail
Sub2 Pass NA Pass
Sub3 Fail Fail Fail Fail Fail
Sub4 NA NA NA NA NA
Sub5 NA Pass NA Pass
我不久前发现另一个 post 可以帮助我获得最右边的值 (Excel formula to get last entry in a row),但我不知道如何将逻辑修改为仅 return NA 如果行中的所有值都是 NA。
这是我用来获取最右边值的公式:
=LOOKUP(2,1/(B2:E2<>""),B2:E2)
我尝试了几种变体,但如果所有值都正确为 NA,则无法将逻辑仅设为 return NA。
有人能帮忙吗?
编辑:我已经完成了丢失嵌套 IF 语句的任务,但这并没有解决当我们添加更多列时必须修改整个 sheet 的问题。如果存在这样的解决方案,我正在寻找一个可靠的解决方案。
此修改应该有效:
=IF(COUNTIF(B2:E2,"NA")=COUNTA(B2:E2),"NA",LOOKUP(2,1/((B2:E2<>"")*(B2:E2<>"NA")),B2:E2))
使用AGGREGATE¹ function to throw an error on blank cells and NA values while ignoring errors. The IFERROR function可以在返回无效值时覆盖NA值。
在 G2 中,
=IFERROR(INDEX(B2:E2, AGGREGATE(14, 6, COLUMN(A:D)/(SIGN(LEN(B2:E2))*(B2:E2<>"NA")), 1)), "NA")
根据需要填写。
¹ AGGREGATE function 是在 Excel 2010 中引入的。它在早期版本中不可用。
我有一个可变长度的值列表(列可能会输出到 ValueN,这个 sheet 会随着时间的推移而扩展)。例如:
Subject Value1 Value2 Value3 Value4
Sub1 Pass Fail Fail
Sub2 Pass NA
Sub3 Fail Fail Fail Fail
Sub4 NA NA NA NA
Sub5 NA PASS NA
我需要创建一个新列来报告最右边的通过或失败,并且仅在所有列均为 NA 时才报告 NA(没有行将所有列都留空),例如:
Subject Value1 Value2 Value3 Value4 New Column
Sub1 Pass Fail Fail Fail
Sub2 Pass NA Pass
Sub3 Fail Fail Fail Fail Fail
Sub4 NA NA NA NA NA
Sub5 NA Pass NA Pass
我不久前发现另一个 post 可以帮助我获得最右边的值 (Excel formula to get last entry in a row),但我不知道如何将逻辑修改为仅 return NA 如果行中的所有值都是 NA。
这是我用来获取最右边值的公式:
=LOOKUP(2,1/(B2:E2<>""),B2:E2)
我尝试了几种变体,但如果所有值都正确为 NA,则无法将逻辑仅设为 return NA。
有人能帮忙吗?
编辑:我已经完成了丢失嵌套 IF 语句的任务,但这并没有解决当我们添加更多列时必须修改整个 sheet 的问题。如果存在这样的解决方案,我正在寻找一个可靠的解决方案。
此修改应该有效:
=IF(COUNTIF(B2:E2,"NA")=COUNTA(B2:E2),"NA",LOOKUP(2,1/((B2:E2<>"")*(B2:E2<>"NA")),B2:E2))
使用AGGREGATE¹ function to throw an error on blank cells and NA values while ignoring errors. The IFERROR function可以在返回无效值时覆盖NA值。
在 G2 中,
=IFERROR(INDEX(B2:E2, AGGREGATE(14, 6, COLUMN(A:D)/(SIGN(LEN(B2:E2))*(B2:E2<>"NA")), 1)), "NA")
根据需要填写。
¹ AGGREGATE function 是在 Excel 2010 中引入的。它在早期版本中不可用。