在不规则表中查找水平和垂直值

时间:2015-11-04 14:18:15

标签: excel

我正在寻找一个公式,当输入比例(1-5,第一行)和步骤(1-13,垂直)时,从下表返回工资(100-2100)。

例如,比例3步骤7应返回1100.

非常感谢任何帮助!

编辑:我有一个混乱的工作解决方案,所以这不是我使用SO作为“代码编写服务”。我正在寻找的公式只是一种更清洁的做事方式。据我所知,有五件事需要同时发生:

  1. 在第一行查找'scale'
  2. 返回找到比例的列
  3. 在2列中查找“步骤”。
  4. 返回'找到步骤
  5. 的行
  6. 基于来自4的行查找A列的值。
  7. 我只是没有知识在一个公式中实现这个,因此我问。谢谢你的帮助。

            A             B    C    D    E    F
        +---------------+----+----+----+----+----+
     1  | salary/scale  | 1  | 2  | 3  | 4  | 5  |
        +---------------+----+----+----+----+----+
     2  | 100,00        |  0 |    |    |    |    |
     3  | 200,00        |  1 |  0 |    |    |    |
     4  | 300,00        |  2 |  1 |    |    |    |
     5  | 400,00        |  3 |  2 |  0 |    |    |
     6  | 500,00        |  4 |  3 |  1 |    |    |
     7  | 600,00        |  5 |  4 |  2 |    |    |
     8  | 700,00        |  6 |  5 |  3 |  0 |    |
     9  | 800,00        |  7 |  6 |  4 |  1 |    |
    10  | 900,00        |  8 |  7 |  5 |  2 |  0 |
    11  | 1000,00       |  9 |  8 |  6 |  3 |    |
    12  | 1100,00       | 10 |  9 |  7 |  4 |  1 |
    13  | 1200,00       |    | 10 |  8 |  5 |  2 |
    14  | 1300,00       |    | 11 |  9 |  6 |  3 |
    15  | 1400,00       |    | 12 | 10 |  7 |  4 |
    16  | 1500,00       |    |    | 11 |  8 |  5 |
    17  | 1600,00       |    |    | 12 |  9 |  6 |
    18  | 1700,00       |    |    | 13 | 10 |  7 |
    19  | 1800,00       |    |    |    | 11 |  8 |
    20  | 1900,00       |    |    |    | 12 |  9 |
    21  | 2000,00       |    |    |    |    | 10 |
    22  | 2100,00       |    |    |    |    | 11 |
    23  | 2200,00       |    |    |    |    | 12 |
        +---------------+----+----+----+----+----+
    

2 个答案:

答案 0 :(得分:0)

假设J16 = 3,K16 = 7(位于查找表上的某处),您可以使用:

=OFFSET(INDIRECT(IF(J16=B1,"B"&MATCH(K16,B2:B24),IF(J16=C1,"C"&MATCH(K16,C2:C24),"D"&MATCH(K16,D2:D24)))),1,-3)

哪个匹配前三列并返回A列中的值。

由于这不是代码编写服务,我将留给您添加其他两列,并将其映射到您的特定比例/步骤单元。

此外,我确信使用某种hlookup可以提高效率,但我认为你可以玩它并让自己变得更好。

答案 1 :(得分:0)

我的问题似乎与此问题有关:Reference a range using column number

因此,我的问题的答案是(比例= 3,步数= 7):

=OFFSET(A1;MATCH(7;INDEX(B2:F23;0;3);0);0)

非常感谢Barry Houdini在相关问题中提供了答案。

-

分解代码:

在第一行中查找'scale'(3)并返回找到比例的列号:

=3 (per definition, the scale number equals the column number)

定义搜索“步骤”的范围(基于Barry Houdini的答案):

=INDEX(B2:F23;0;3)

在上面定义的范围内查找'step'(7)并返回找到它的行号:

=MATCH(7;INDEX(B2:F23;0;3);0)

使用上面的行号查找A列中的薪水:

=OFFSET(A1;MATCH(7;INDEX(B2:F23;0;3);0);0)