excel中如何根据数据判断所在的区间并进行相应的计算

excel中如何根据数据判断所在的区间并进行相应的计算

  例如:判断D列时间的“分针”项,将时间归属为四个区间,分别是:

  第1~14分钟,16~29分钟,31~44分钟,46~59分钟。时间归属为第一区间的,将时间分针数调整为0,;归属为第二区间的,分针数调整为15,;区间为3的,分针数调整为30,;区间为4的,分针数调整为45. 并将结果对应放到“修改时间A”列中。

  解答:=IF(MINUTE(D3)<15,YEAR(D3)&"-"&MONTH(D3)&"-"&DAY(D3)&" "&HOUR(D3)&":00",IF(MINUTE(D3)<30,YEAR(D3)&"-"&MONTH(D3)&"-"&DAY(D3)&" "&HOUR(D3)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-11

=INDEX($B$1:$B$18,MATCH(MAX(IF($A$1:$A$18<D2,$A$1:$A$18)),$A$1:$A$18,0))+(D2-MAX(IF($A$1:$A$18<D2,$A$1:$A$18)))*(INDEX($B$1:$B$18,MATCH(MIN(IF($A$1:$A$18>D2,$A$1:$A$18)),$A$1:$A$18,0))-INDEX($B$1:$B$18,MATCH(MAX(IF($A$1:$A$18<D2,$A$1:$A$18)),$A$1:$A$18,0)))/(MIN(IF($A$1:$A$18>D2,$A$1:$A$18))-MAX(IF($A$1:$A$18<D2,$A$1:$A$18)))

——数组公式,按Ctrl+Shift+Enter结束输入。

第2个回答  2014-07-11
在单元格中输入以下公式
=LOOKUP(D2,A:A,B:B)+(D2-INDEX(A:A,MATCH(D2,A:A,-1)))*(INDEX(B:B,MATCH(LOOKUP(D2,A:A,B:B),B:B)+1))-LOOKUP(D2,A:A,B:B))/(INDEX(A:A,MATCH(D2,A:A,1))-INDEX(A:A,MATCH(D2,A:A,-1)))

公式中:
LOOKUP(D2,A:A,B:B)返回D2在升序排列的单元格中模糊查找的对应值B13
INDEX(A:A,MATCH(数据,A:A,-1))之类的表示最接近数据的最小值
INDEX(A:A,MATCH(数据,A:A,1))之类的表示最接近数据的最大值追问

提示这个,兄台

追答

刚才的公式有误,重新修正一下

输入以下公式

=LOOKUP(D2,A:A,B:B)+(D2-INDEX(A:A,MATCH(D2,A:A,1)))*(INDEX(B:B,MATCH(LOOKUP(D2,A:A,B:B),B:B)+1)-LOOKUP(D2,A:A,B:B))/(INDEX(A:A,MATCH(D2,A:A,1)+1)-INDEX(A:A,MATCH(D2,A:A,1)))

公式中:
LOOKUP(D2,A:A,B:B)返回D2在升序排列的单元格中的对应值B8(不是B13)
INDEX(A:A,MATCH(数据,A:A,-1))之类的表示升序排列的A列小于数据的最大值

详见附图附件

第3个回答  2014-07-11
搞个VBA是挺好的

Sub PANDUAN()

Dim i, k As Integer

For i = 1 To 20

If Cells(i + 1, 1) >= Cells(2, 4) Then

Cells(7, 4) = Cells(i, 2) + (Cells(2, 4) - Cells(i, 1)) * (Cells(i + 1, 2) - Cells(i, 2)) / (Cells(i + 1, 1) - Cells(i, 1))

End If

Next

End Sub
第4个回答  2014-07-11
=INDIRECT("B"&MATCH(D2,A1:A18))+(D2-INDIRECT("a"&MATCH(D2,A1:A18)))*(INDIRECT("b"&MATCH(D2,A1:A18)+1)-INDIRECT("b"&MATCH(D2,A1:A18)))/(INDIRECT("a"&MATCH(D2,A1:A18)+1)-INDIRECT("a"&MATCH(D2,A1:A18)))本回答被提问者采纳
相似回答