从列和行的动态交集处复制值

时间:2013-11-19 14:40:13

标签: excel indexing match lookup vlookup

在excel中使用函数LOOKUP条件格式,我做了下面的大表。以红色突出显示的单元格是标记为 7 的列与标记为 20 的行之间相交的结果。作为附加信息,要交叉的列和行取决于小表中的值(值7和20)。

我需要做的是将突出显示的单元格中的值(27)与其他单元格中的公式相关联。假设与小表中第三列中的每个值相乘。当由于小表的 总和 的变化而导致此更改时,公式应该能够遵循列 - 行交集(值7和20将更改)。或者,红细胞中的值可以在其他细胞中复制,并且可以从那里进行倍增。我尝试使用LOOKUPVLOOKUPINDEXMATCH,但没有成功;因此,任何帮助将不胜感激。

表:

Large table

Small table

值,以防您需要它们来测试您的建议。

小桌子:

1   1   3
2   1   2
3   1   3
4   1   3
5   1   3
6   1   3
7   1   3
8   0   0
sum 7   20

大表:

    0   1   2   3   4   5   6   7   8
1   15  20  25  28  31  33  34  35  36
2   15  20  25  28  31  33  34  35  36
3   15  20  25  28  31  33  34  35  36
4   15  20  25  28  31  33  34  35  36
5   15  20  25  28  31  33  34  35  36
6   15  20  25  28  31  33  34  35  36
7   15  20  25  28  31  33  34  35  36
8   15  20  25  28  31  33  34  35  36
9   5   20  25  28  31  33  34  35  36
10  5   10  25  28  31  33  34  35  36
11  5   10  15  28  31  33  34  35  36
12  0   10  15  18  31  33  34  35  36
13  0   0   15  18  23  33  34  35  36
14  0   0   5   18  23  30  34  35  36
15  0   0   5   8   23  30  28  31  36
16  0   0   0   8   15  30  28  31  36
17  0   0   0   0   15  22  28  31  32
18  0   0   0   0   7   22  22  31  32
19  0   0   0   0   7   22  22  27  32
20  0   0   0   0   0   16  16  27  27
21  0   0   0   0   0   16  16  21  27
22  0   0   0   0   0   8   10  21  21
23  0   0   0   0   0   8   10  15  21
24  0   0   0   0   0   0   4   9   15

1 个答案:

答案 0 :(得分:0)

假设突出显示的单元格在I22,并且较小数组中的求和单元格为named CsumNsum,请尝试:

=INDEX(INDIRECT(CHAR(cSUM+66)&":"&CHAR(cSUM+66)),Nsum+2)  

其中的基本结构是=INDEX,在那里描述的语法#1版本中。但是,我没有指定数组然后选择column_number,而是选择不使用可选列号参数并将数组定义为相关列。

概述:

=INDEX(first_parameter, second_parameter)  

其中第二个参数是从较大数组中的两个标题行的 N o 配额2的偏移之和得出的行数。

第一个参数是在=INDIRECT中构建的:

=CHAR(cSUM+66)  

两次使用ampersand concatenation operator

&":"&  

在两者之间插入一个冒号。

由于大数组中的第七列已被视为ColumnI而=CHAR的值为73,因此返回I所需的列号字符值比贡献。

然而,上述方法将失败,因为较大的数组超出了ColumnZ。因此,另一种方法是指定大数组的主体(基于上述假设的B3:J26)(比如Larray的命名范围)并使用此大纲:

=INDEX(Larray, second_parameter, third_parameter)  

以这种方式:

=INDEX(Larray,Nsum,Csum)