Excel公式基于两个单元格的值的单元格值

时间:2013-07-17 13:42:26

标签: excel excel-formula

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

有两种情况

情景1:

  

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

情景2:

  

如果我给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 个答案:

答案 0 :(得分: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)," ")

答案 1 :(得分:0)

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

  

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

     

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

     

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

     

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

答案 2 :(得分: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)

enter image description here

答案 3 :(得分: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。