爱问知识人 爱问教育 医院库

Excel怎么快速查找需要的数据?

首页

Excel怎么快速查找需要的数据?

我错在那里?

提交回答
好评回答
  • 2008-11-27 15:37:43
      公式修改如下:
    =IF(D2="","",IF(ISERROR(INDEX(Sheet2!C:C,MATCH(D2,Sheet2!D:D,0))),INDEX(Sheet2!C:C,MATCH(D2,Sheet2!D:D,-1)+IF(ABS(INDEX(Sheet2!D:D,MATCH(D2,Sheet2!D:D,-1))-D2)>ABS(INDEX(Sheet2!D:D,MATCH(D2,Sheet2!D:D,-1)+1)-D2),1,0)),INDEX(Sheet2!C:C,MATCH(D2,Sheet2!D:D,0))))
    请看附件。
       数组公式如下: {=IF(D2="","",INDEX(Sheet2!C:C,IF(ISERROR(MATCH(D2+MIN(ABS(D2-TEXT(Sheet2!$D$1:$D$35,"G/通用格式;;;!0"))),Sheet2!D:D,0)),MATCH(D2-MIN(ABS(D2-TEXT(Sheet2!$D$1:$D$35,"G/通用格式;;;!0"))),Sheet2!D:D,0),MATCH(D2+MIN(ABS(D2-TEXT(Sheet2!$D$1:$D$35,"G/通用格式;;;!0"))),Sheet2!D:D,0))))} 请看附件。
       两种公式都有局限性。

    1***

    2008-11-27 15:37:43

其他答案

    2008-11-27 14:34:28
  •   问题很简单,详细了解一下MATCH(lookup_value,lookup_array,match_type)函数的工作原理就可以找到答案了。
    match_type取值为0时精确匹配,找不到lookup_value就返回错误值,取值为1时,返回大于或者等于lookup_value的最小的值。
       =IF(D6="","",IF(ISERROR(INDEX(Sheet2!C:C,MATCH(D6,Sheet2!D:D,0))),INDEX(Sheet2!C:C,MATCH(D6,Sheet2!D:D,-1)),INDEX(Sheet2!C:C,MATCH(D6,Sheet2!D:D,0)))) 这个公式的工作原理就是先在Sheet2中查找D6的值,如果找不到的话,就返回大于或者等于D6的最小的值在Sheet2!D:D中的位置。
       很显然D6中的2。2432在Sheet2中的D列中是找不到的,于是公式找到了比2。2432大一点的2。2498,实际上应该是比2。2432小一点的2。2431更接近于实测值,返回结果当然就不正确了。

    è***

    2008-11-27 14:34:28

类似问题

换一换
  • 办公软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):