我可能在这里要求太多,但这也是我正在从下面的excel表中处理的要求的一部分我想找到指定单元格的值,如果我给出两个不同的值,我想使用excel中的OFFSET
,MATCH
,INDEX
函数实现这一目标。
有两种情况
情景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
答案 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)
答案 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。