0 首先用match()等取得行号,列号

如果想根据行号+列号,精确查找,另外一个区域的数据,可以用如下方法

=INDIRECT("Sheet2!r"&MATCH($C11,Sheet2!$A:$A,0)&"C"&MATCH(D$10,Sheet2!$1:$1,0),FALSE)

1 用=indirect("r1c1",false) +match() 查找

   但是要特别注意,特别是跨表查询,注意手动修改表名

   用=indirect("Sheet2!r1c1",false)

   因为无论indirect("") 中间这个""字符串 string 用& 或者concatenate() 都是一个拼接字符串,因为拼接字符串,狠自由,同时也狠容易出错,所以要看清楚。

  另外记得=indirect("r1c1",false) ,r1c1 查找模式,需要用false参数,而不是默认的true参数

2 用 index()+ match()

=INDEX(Sheet2!$G:$J,MATCH($C17,Sheet2!$A:$A,0),MATCH(D$16,Sheet2!$1:$1,0))

3 更复杂功能, index() 可以增加几个更复杂的多个区域

=INDEX((Sheet2!$A:$D,Sheet2!$G:$J),MATCH($C23,Sheet2!$A:$A,0),MATCH(D$16,Sheet2!$1:$1,0))

 

4  详细测试了index()的功能总结

4.1 index() 查单列/单行

总结:index(单行/单列,row,column)

  • index用法1,如果是单行/单列,后面参数如果只1个,那么就默认是 单行-默认对应列数,单列-默认对应行数
  • 但是一旦你写2个参数,必须按先行后列的方式写,row,column
  • 如果是单行单列,再另外一维写0,1和默认是一样的,默认指本行
  1. 在单列中查找, index(单列,row,[column/0/1])
  2. 按单行中查找, index(单行,[row/0/1],column)

4.2 index() 查1个二维区域

总结:index(至少1个二维区域,row,column,[第几个区域])

  • index用法1,如果是一个二维区域,
  • 如果是1个区域,那么后面必须填,row,column 行列按次序填。1个区域的情况下填0,1和不填都是指第1个区域-当前区域
  • 如果是多个区域,第3个参数指定是第几个区域

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐