excel中的VLOOKUP

excel中的VLOOKUP,excel,excel-formula,vba,Excel,Excel Formula,Vba,假设我有3列 A B C 1 8 0 2 9 0.3 3 15 0.1 4 16 0.01 5 17 0.02 6 18 0.05 我需要在c列中找到大于0.1小于-0.1的值。我可以使用“条件格式”选项卡执行此操作。一旦找到这些值,我需要在A列中找到相应的值,然后使用这些值,我需要在B列中找到A列和B列中的值之间的差值小于8的值。例如

假设我有3列

A       B       C
1      8        0
2      9        0.3
3      15       0.1
4      16       0.01
5      17       0.02
6      18       0.05

我需要在c列中找到大于0.1小于-0.1的值。我可以使用“条件格式”选项卡执行此操作。一旦找到这些值,我需要在A列中找到相应的值,然后使用这些值,我需要在B列中找到A列和B列中的值之间的差值小于8的值。例如,让我们在C列中取0.3,在A列中对应的值是2。查看B列中的所有值,我看到8-2 0.1,其中0.1由我们定义(条件格式),我们从B列中获取所有值。B列中的每个值从A列中减去(我们获取减法后的绝对值)。例如,对于0.3,列A中的对应值为2。我们从B列中的每个值中减去它。2-8、2-9、2-15、2-16、2-17、2-18等等。从这些值中,我们只选择小于8的值(由我们再次定义)。所以只有2个值是6,7,因为其他所有值的绝对值都大于8。我们将这个值打印在D列。

这是一个令人困惑的问题,但我想我理解你的要求。将其放入单元格D1并填写:

=IF(AND(OR(C1>0.1,C1<-0.1),LEN(IF(NOT(ISERROR(MATCH(A1,$B$1:$B$6,0))),"0,","")&IF(NOT(ISERROR(MATCH(A1+1,$B$1:$B$6,0))),"1,","")&IF(NOT(ISERROR(MATCH(A1+2,$B$1:$B$6,0))),"2,","")&IF(NOT(ISERROR(MATCH(A1+3,$B$1:$B$6,0))),"3,","")&IF(NOT(ISERROR(MATCH(A1+4,$B$1:$B$6,0))),"4,","")&IF(NOT(ISERROR(MATCH(A1+5,$B$1:$B$6,0))),"5,","")&IF(NOT(ISERROR(MATCH(A1+6,$B$1:$B$6,0))),"6,","")&IF(NOT(ISERROR(MATCH(A1+7,$B$1:$B$6,0))),"7,",""))>1),LEFT(IF(NOT(ISERROR(MATCH(A1,$B$1:$B$6,0))),"0,","")&IF(NOT(ISERROR(MATCH(A1+1,$B$1:$B$6,0))),"1,","")&IF(NOT(ISERROR(MATCH(A1+2,$B$1:$B$6,0))),"2,","")&IF(NOT(ISERROR(MATCH(A1+3,$B$1:$B$6,0))),"3,","")&IF(NOT(ISERROR(MATCH(A1+4,$B$1:$B$6,0))),"4,","")&IF(NOT(ISERROR(MATCH(A1+5,$B$1:$B$6,0))),"5,","")&IF(NOT(ISERROR(MATCH(A1+6,$B$1:$B$6,0))),"6,","")&IF(NOT(ISERROR(MATCH(A1+7,$B$1:$B$6,0))),"7,",""),LEN(IF(NOT(ISERROR(MATCH(A1,$B$1:$B$6,0))),"0,","")&IF(NOT(ISERROR(MATCH(A1+1,$B$1:$B$6,0))),"1,","")&IF(NOT(ISERROR(MATCH(A1+2,$B$1:$B$6,0))),"2,","")&IF(NOT(ISERROR(MATCH(A1+3,$B$1:$B$6,0))),"3,","")&IF(NOT(ISERROR(MATCH(A1+4,$B$1:$B$6,0))),"4,","")&IF(NOT(ISERROR(MATCH(A1+5,$B$1:$B$6,0))),"5,","")&IF(NOT(ISERROR(MATCH(A1+6,$B$1:$B$6,0))),"6,","")&IF(NOT(ISERROR(MATCH(A1+7,$B$1:$B$6,0))),"7,",""))-1),"")
(代码><代码><代码>=若(和)(或(C1>0.1,C1>0.1,C11),C11),左(若)若(若)若(若)若(若)若(和(或)(或(或(或)(或(C1>0.1,C1>0.1,C11),左(若)左(若)若(若)若(若)若(若)若(若)若(非(若)若)若(若)若(若(若)若(匹配(匹配(匹配(匹配(匹配(匹配(匹配(匹配(匹配(匹配(1+2+2+2+2+2+2+2+2+2+2+2+1美元,B美元,B$1美元,B$1美元1美元1美元1美元1美元美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元:B美元1美元1美元1美元:B美元:B美元1美元美元1美元(匹配(A1+5,$B$1:$B$6,0)),“5,”,“)&如果(不匹配)(ISERROR“6,,,,,,))及若(非)(非)(非)(非)(非)(非)(非)(非)(非)(非)(非)(非)(非)(非)(非)ISRoRoR(匹配(A1+7+7+7,B$1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元1美元6美元6美元6美元6.0元0美元0美元0美元0美元0元)))))),,,,,,,,,,“7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&IF(NOT)(iError(匹配(A1+4,$B$1:$B$6,0)),“4,,”)&IF(NOT)(iError(匹配(A1+5,$B$1:$B$6,0)),“5,”)&如果(不匹配(iError(匹配(A1+6,$B$1:$B$6,0)),“6,”,“”)和如果(不匹配(匹配(A1+7,$B$1:$B$6,0)),“7,”)-1),“”) 这是一个很长的公式,但它实际上是同一个核心公式,写了三次(一次用于确定字符串的长度,一次用于返回字符串,另一次用于删除尾随的“,”)

我假设值为正值,您的意思是>0.1而不是>=0.1(根据我对您问题的评论,您在后一点上不一致)

如果愿意,可以更改范围以包括更多行或整个列

以下是一个简短的版本,它会在最终值的末尾留下一个“,”(只是为了便于您理解它的工作原理):


=IF(或(C1>0.1,C1)您的问题不清楚。
查看B列中的所有值,我看到8-2“但是我不应该打印15-3,因为该值大于8”-我假设您的意思是因为它不大于0.1?否则,它不适用,因为8-3和9-3都小于8吗?
=IF(AND(OR(C1>0.1,C1<-0.1),LEN(IF(NOT(ISERROR(MATCH(A1,$B$1:$B$6,0))),"0,","")&IF(NOT(ISERROR(MATCH(A1+1,$B$1:$B$6,0))),"1,","")&IF(NOT(ISERROR(MATCH(A1+2,$B$1:$B$6,0))),"2,","")&IF(NOT(ISERROR(MATCH(A1+3,$B$1:$B$6,0))),"3,","")&IF(NOT(ISERROR(MATCH(A1+4,$B$1:$B$6,0))),"4,","")&IF(NOT(ISERROR(MATCH(A1+5,$B$1:$B$6,0))),"5,","")&IF(NOT(ISERROR(MATCH(A1+6,$B$1:$B$6,0))),"6,","")&IF(NOT(ISERROR(MATCH(A1+7,$B$1:$B$6,0))),"7,",""))>1),LEFT(IF(NOT(ISERROR(MATCH(A1,$B$1:$B$6,0))),"0,","")&IF(NOT(ISERROR(MATCH(A1+1,$B$1:$B$6,0))),"1,","")&IF(NOT(ISERROR(MATCH(A1+2,$B$1:$B$6,0))),"2,","")&IF(NOT(ISERROR(MATCH(A1+3,$B$1:$B$6,0))),"3,","")&IF(NOT(ISERROR(MATCH(A1+4,$B$1:$B$6,0))),"4,","")&IF(NOT(ISERROR(MATCH(A1+5,$B$1:$B$6,0))),"5,","")&IF(NOT(ISERROR(MATCH(A1+6,$B$1:$B$6,0))),"6,","")&IF(NOT(ISERROR(MATCH(A1+7,$B$1:$B$6,0))),"7,",""),LEN(IF(NOT(ISERROR(MATCH(A1,$B$1:$B$6,0))),"0,","")&IF(NOT(ISERROR(MATCH(A1+1,$B$1:$B$6,0))),"1,","")&IF(NOT(ISERROR(MATCH(A1+2,$B$1:$B$6,0))),"2,","")&IF(NOT(ISERROR(MATCH(A1+3,$B$1:$B$6,0))),"3,","")&IF(NOT(ISERROR(MATCH(A1+4,$B$1:$B$6,0))),"4,","")&IF(NOT(ISERROR(MATCH(A1+5,$B$1:$B$6,0))),"5,","")&IF(NOT(ISERROR(MATCH(A1+6,$B$1:$B$6,0))),"6,","")&IF(NOT(ISERROR(MATCH(A1+7,$B$1:$B$6,0))),"7,",""))-1),"")
=IF(OR(C1>0.1,C1<-0.1),IF(NOT(ISERROR(MATCH(A1,$B$1:$B$6,0))),"0,","")&IF(NOT(ISERROR(MATCH(A1+1,$B$1:$B$6,0))),"1,","")&IF(NOT(ISERROR(MATCH(A1+2,$B$1:$B$6,0))),"2,","")&IF(NOT(ISERROR(MATCH(A1+3,$B$1:$B$6,0))),"3,","")&IF(NOT(ISERROR(MATCH(A1+4,$B$1:$B$6,0))),"4,","")&IF(NOT(ISERROR(MATCH(A1+5,$B$1:$B$6,0))),"5,","")&IF(NOT(ISERROR(MATCH(A1+6,$B$1:$B$6,0))),"6,","")&IF(NOT(ISERROR(MATCH(A1+7,$B$1:$B$6,0))),"7,",""),"")