如何用TEXTJOIN函数合并提取最高值0.02范围内对应表格值
问题描述
我有如下表格:
需求如下:
- 在一个单元格提取最高0.xx值对应的0-5表格值;
- 在另一个单元格提取所有与最高值差值在0.02以内的其他0.xx值对应的表格值。
目前已实现的公式:
- 提取最高值对应值:
示例中返回结果为“3”。=TEXTJOIN(",",TRUE,IF(C15:H15=MAX(C15:H15),C14:H14,"")) - 提取最高值减0.01对应值:
=TEXTJOIN(",",TRUE,IF(C15:H15=MAX(C15:H15)-0.01,C14:H14,""))
但这类操作需要分单元格进行,我希望将最高值减0.01、减0.02对应的表格值提取合并到同一个单元格中,尝试了以下公式但无法正常运行:
=TEXTJOIN(",",TRUE,IF(OR(C15:H15=MAX(C15:H15)-0.01,C14:H14,""),(C15:H15=MAX(C15:H15)-0.02,C14:H14,"")))
补充说明:不一定存在最高值0.02范围内的值,极少出现两个值在该范围内,但单个值的情况较常见。请问如何实现合并提取?
解决方案
方法1:按差值区间提取(推荐)
直接判断数值是否处于最高值减0.02到最高值之间,同时排除最高值本身(提取其他符合条件的值),公式如下:
=TEXTJOIN(",",TRUE,IF((C15:H15>=MAX(C15:H15)-0.02)*(C15:H15<MAX(C15:H15)),C14:H14,""))
注意:旧版Excel需按
Ctrl+Shift+Enter作为数组公式执行;新版Excel支持动态数组,直接回车即可。
方法2:精准匹配特定差值
如果仅需要提取最高值减0.01、减0.02对应的数值,用+实现逻辑或的数组判断,公式如下:
=TEXTJOIN(",",TRUE,IF((C15:H15=MAX(C15:H15)-0.01)+(C15:H15=MAX(C15:H15)-0.02),C14:H14,""))
效果说明
- 无符合条件值时,返回空字符串;
- 多个符合条件值时,自动用逗号分隔合并;
- 完美适配单个值的常见场景,也支持极少出现的多值情况。
内容的提问来源于stack exchange,提问作者user3087904
相关产品推荐
相关产品推荐

