所以我确信我的语法错误,但情况就是这样......
我的Sheet2有3列:point_name,x,y我有Sheet3,列有5列的区域:area_name,x_start,x_end,y_start,y_end
我试图将每个X和Y坐标与它的相应区域相关联。我知道索引匹配将允许多个条件,但它似乎不允许多种匹配类型....
=INDEX(Sheet3!A2:A64,MATCH(Sheet2!B2&Sheet2!C2&Sheet2!B2&Sheet2!C2,Sheet3!$C$2:$C$65&Sheet3!$E$2:$E$65&Sheet3!$B$2:$B$65&Sheet3!$D$2:$D$65,-1&-1&1&1))
我遇到的问题(或者我认为我遇到的问题)是,虽然匹配将允许多个条件,但它不允许多个匹配类型IE -1&amp; 1大于&amp;小于。< / p>
也许我只是以错误的方式解决这个问题,所以简要回顾一下
我有一个区域列表以及sheet3中每个区域的相应边界
我想
返回Sheet3 area_name
sheet2 x大于sheet3 x_end和
sheet2 x小于sheet3 x_start和
sheet2 y大于sheet3 y_end和
sheet2 y小于sheet3 y_start
实际上&lt; =&gt; =会更好,但我不想让它复杂化,直到得到我正在寻找的结果。
我是否用索引匹配功能咆哮错误的树?有没有更好的方法来做到我错过了?
我不反对在sheet2中使用带有foreach行的宏,如果这是更好的方法。
感谢您的时间。
修改
示例数据:
Sheet2
point_name __x_ __y_
point1 1060 6090
point2 1200 6080
point3 1232 5750
Sheet3
area_name y_start y_end x_start x_end
Area1 6106 6080 1149 1055
Area2 6106 6080 1315 1163
Area3 6227.5 6115.5 1115 1095
Area4 5860 5730 1239 1229
答案 0 :(得分:0)
使用您提供的样本数据,结果将是“Area1”,“Area2”和“Area4”。使用此公式可以获得这些结果:
=INDEX(Sheet3!$A$2:$A$5,MATCH(1,INDEX((Sheet3!$D$2:$D$5>=B2)*(Sheet3!$E$2:$E$5<=B2)*(Sheet3!$B$2:$B$5>=C2)*(Sheet3!$C$2:$C$5<=C2),),0))