1

我可能在这里要求太多,但这也是我从下面的 excel 表中处理的要求的一部分如果我给出两个不同的值,我想找到指定单元格的值并且我想实现那个使用OFFSET, MATCH,INDEX函数在 excel 中。

有两种情况

场景一:

如果我给出 value1=3500 (不在第一列)和 value2=75 Result1=1.59 和 Result2=1.89

场景二:

如果我给出 value1=3500 和 value2=85 (这两个值都不在网格的第一行和第一列),结果值应该是 Result1=1.59, Result2=1.89, Result3=1.51, Result4= 1.81`

我怎样才能在excel中实现这一点?

Measure |2.5    |5      |10     |25     |50     |75     |100    |150    |200    
250     |0.835  |0.75   |0.69   |0.6    |0.528  |0.455  |0.383  |0.314  |0.245  
500     |1.044  |0.938  |0.863  |0.75   |0.675  |0.6    |0.525  |0.451  |0.378  
1000    |1.391  |1.25   |1.15   |1      |0.923  |0.845  |0.768  |0.689  |0.61   
2000    |1.948  |1.75   |1.52   |1.4    |1.321  |1.243  |1.164  |1.083  |1.002  
3000    |2.435  |2.188  |1.95   |1.75   |1.67   |1.59   |1.51   |1.426  |1.343  
4000    |2.853  |2.563  |2.3    |2.05   |1.97   |1.89   |1.81   |1.726  |1.643  
5000    |3.507  |3.15   |2.675  |2.4    |2.269  |2.188  |2.107  |2.021  |1.936  
10000   |       |4.553  |4      |3.72   |3.56   |3.477  |3.394  |3.304  |3.215  
15000   |       |5.691  |5      |4.6    |4.469  |4.385  |4.301  |4.209  |4.117  
20000   |       |6.545  |5.8    |5.3    |5.151  |5.066  |4.981  |4.888  |4.795  
25000   |       |7.527  |6.4    |5.83   |5.666  |5.573  |5.48   |5.377  |5.274  
50000   |       |9.785  |8.32   |7.579  |7.366  |7.245  |7.123  |6.99   |6.856  
4

4 回答 4

1

我今天在浏览 stackoverflow 时才注意到这个问题,并且由于它从未真正完整地解决,我决定回答它以供面临相同问题的个人将来参考。

这是解决这个问题的众多可能方法之一:

假设 Measure 表放置在 Excel 工作表的 A1:J13 范围内,值 1 在单元格 A16 中,值 2 在单元格 C16 中,结果值 1 到 4 存储在单元格范围 E16:F17 中,那么我们可以在 Excel 2010/2013 中使用以下公式来提取您需要的信息:

在单元格 E16(存储结果 1 的值的单元格)中,输入以下公式:

=IF(AND(IFERROR(MATCH(A16,A1:A13,0),FALSE), IFERROR(MATCH(C16,A1:J1,0),FALSE)),INDEX((OFFSET($A$1:$J$13,(MATCH(A16,A1:A13,0)-1),(MATCH(C16,A1:J1,0)-1))),1,1), INDEX((OFFSET($A$1:$J$13,(MATCH(A16,A1:A13,1)-1),(MATCH(C16,A1:J1,1)-1))),1,1))

在单元格 E17(存储结果 2 值的单元格)中,输入以下公式:

=IF((IFERROR(MATCH(A16,A1:A13,0),FALSE))," ", INDEX((OFFSET($A$1:$J$13,(MATCH(A16,A1:A13,1)),(MATCH(C16,A1:J1,1)-1))),1,1))

在单元格 F16(存储结果 3 值的单元格)中,输入以下公式:

=IF((IFERROR(MATCH(C16,A1:J1,0),FALSE)),"",INDEX((OFFSET($A$1:$J$13,(MATCH(A16,A1:A13,1)-1),(MATCH(C16,A1:J1,1)))),1,1))

在单元格 F17(存储结果 4 值的单元格)中,输入以下公式:

=IF(AND(IFERROR(MATCH(A16,A1:A13,0),FALSE)=FALSE, IFERROR(MATCH(C16,A1:J1,0),FALSE)=FALSE),INDEX((OFFSET($A$1:$J$13,(MATCH(A16,A1:A13,1)),(MATCH(C16,A1:J1,1)))),1,1)," ")
于 2015-04-13T01:45:10.263 回答
0

如果这有帮助,假设 Measure 是从 A1 开始的命名范围,并且 value1 和 value2 是命名范围,以下公式似乎显示了角落的值:

=INDEX(测量,IFERROR(MATCH(value1,A:A,0),MATCH(value1,A:A,1)),IFERROR(MATCH(value2,1:1,0),MATCH(value2,1:1 ,1)))

=INDEX(测量,IFERROR(MATCH(value1,A:A,0),MATCH(value1,A:A,1)),IFERROR(MATCH(value2,1:1,0),MATCH(value2,1:1 ,1)+1))

=INDEX(测量,IFERROR(MATCH(value1,A:A,0),MATCH(value1,A:A,1)+1),IFERROR(MATCH(value2,1:1,0),MATCH(value2,1 :1,1)))

=INDEX(测量,IFERROR(MATCH(value1,A:A,0),MATCH(value1,A:A,1)+1),IFERROR(MATCH(value2,1:1,0),MATCH(value2,1 :1,1)+1))

于 2013-07-17T17:50:33.323 回答
0

不完全是你想要的,但这是我的尝试:

输入以下公式B19,然后复制并粘贴到绿色表格中的所有单元格。

=IF(OR(AND($B$15=$A19,$B$16=B$18),AND($B$15>$A18,$B$15<$A20,$B$16>A$18,$B$16<C$18)),B2,0)

在此处输入图像描述

于 2013-07-17T18:18:13.603 回答
0

假设您的工作簿放置在命名范围 Measure(B2:J13)、Value 1(B15) 和 Value 2(B16) 中,则公式:

=INDEX(Measure,MATCH(Value_1,$A$2:$A$13,1),MATCH(Value_2,$B$1:$J$1,1))
=INDEX(Measure,MATCH(Value_1,$A$2:$A$13,1),MATCH(Value_2,$B$1:$J$1,1)+1)
=INDEX(Measure,MATCH(Value_1,$A$2:$A$13,1)+1,MATCH(Value_2,$B$1:$J$1,1))
=INDEX(Measure,MATCH(Value_1,$A$2:$A$13,1)+1,MATCH(Value_2,$B$1:$J$1,1)+1)

将返回您需要的值。使用MATCH函数选择行,选择性地用+ 1(或类似的)偏移它,然后使用INDEX选择表中的项目。

表格布局是装饰性的。没有什么能阻止列和行标签完全位于别处。命名范围引用输入值。

其他输入值 1000、10 返回结果 1.15、1、1.52、1.4。

于 2013-07-17T19:40:39.280 回答