执行返回最接近值的查找

时间:2016-12-30 02:45:00

标签: excel excel-2013

在excel中,假设我有两列数据:

Column A:
-10
0
10

Column B:
Ugly
OK
Pretty

我尝试在A列中查找-9和-1之间的值,它将返回" Ugly"。如何让它返回"好的"?同样值1到9的值,我希望excel回报我"漂亮"。我尝试找到索引匹配方法,但无法找到一个像这样的简单示例。

奖金问题:如果我"姓名" A1:B3为" DogRating",如何在公式中使用此名称,以便它引用"漂亮" - 即DogRating(2,3)通常是阵列?这在excel中不起作用。

由于

3 个答案:

答案 0 :(得分:0)

如果您只使用10,0,1作为索引,则可以使用以下公式

来获得结果
  TWeatherCode = record
   public
    class operator Implicit(const Value: TWeatherCode): String;
    class operator Implicit(const Value: String): TWeatherCode;
    class operator Implicit(const Value: TWeatherCode): Cardinal;
    class operator Implicit(const Value: Cardinal): TWeatherCode;
    function Description: String;
    function DayNightStr: String;
   public
    case Storage: Boolean of
      True: (
        DayNight: TDayNight;
        Clouds: TCloudCode;
        Precip: TPrecipCode;
        PrecipType: TPrecipTypeCode);
      False: (IntValue: Cardinal);
  end;

...

class operator TWeatherCode.Implicit(const Value: TWeatherCode): Cardinal;
begin
  Result := Value.IntValue;
end;

class operator TWeatherCode.Implicit(const Value: Cardinal): TWeatherCode;
begin
  Result.IntValue := Value;
end;

DogRating是Column A: -10 0 1 Column B: Ugly OK Pretty =VLOOKUP(F1,DogRating,2,TRUE)

A1:B3是用户输入

F1用于近似匹配

<强>结果:

TRUE

顺便说一句,对于高于10的值,结果也很好

答案 1 :(得分:0)

同意nighcrawler。 VLOOKUP的行为在这里定义为要求查找表指示以ASCENDING顺序出现,其中范围查找的结果将始终低于您的查找值: http://www.excelfunctions.net/Vlookup-Example-Closest-Match.html

关于您的奖金问题,您可以使用索引功能,如下所示: How to find value of a cell from named range

答案 2 :(得分:0)

将值放在 C1 中,然后在另一个单元格中输入数组公式

=INDEX(B1:B3,MATCH(MIN(ABS(A1:A3-C1)),ABS(A1:A3-C1),0))

例如:

enter image description here

必须使用 Ctrl + Shift + 输入输入

数组公式,而不仅仅是 Enter key。

公式查找 A 列中最接近 C1 值的值,并返回 B 列中的相邻值。 (此公式不要求对表进行排序。)