匹配行和列以从同一行获取值 - Matrix

时间:2016-11-08 20:23:33

标签: excel excel-formula excel-2010 excel-2007

我有一个像下面这样的矩阵,

  A  B  C  D  E  F
A 0 12 13 14 15 16
B 12 0 12 15 15 18
C 11 11 0 12 12 15
D 26 24 25 0 22 25
E 87 86 82 12 0 23
F 11 25 36 14 25 0

现在我希望以下面的格式,

A A 0
A B 12
A C 13
A D 14
A E 15
A F 16
B A 12
B B 0
B C 12 so on.

我如何通过公式在excel中实现这一目标。

3 个答案:

答案 0 :(得分:1)

如上所述,Offset是一个易失性函数,因为无论基础数据是否发生变化,无论何时excel都会计算它。

索引不易变:

在A10:

=INDEX($A$2:$A$7,INT((ROW(1:1)-1)/ROWS($A$2:$A$7))+1)

在B10:

=INDEX($B$1:$G$1,MOD((ROW(1:1)-1),COLUMNS($B$1:$G$1))+1)

在C10中:

=INDEX(A:G,MATCH(A10,$A:$A,0),MATCH(B10,$1:$1,0))

然后复制

enter image description here

答案 1 :(得分:0)

假设您的数据是固定宽度(此处为6)并且存在于A-F列中。将以下公式放入J1-L1并填写。它使用偏移方法并查看行的分数,余数或整数,以确定行(整数)的步数或通过mod函数(列)的余数。

=OFFSET($A$1,ROUNDDOWN((ROW(J1)-ROW($J$1))/6,0)+1,0) =OFFSET($A$1,0,MOD((ROW(K1)-ROW($J$1)),6)+1) =OFFSET($A$1,ROUNDDOWN((ROW(L1)-ROW($J$1))/6,0)+1,MOD((ROW(K1)-ROW($J$1)),6)+1)

答案 2 :(得分:0)

我希望我理解你的问题。但是,假设您的矩阵从表格的左上角开始,您将拥有:

走下去 单元格A2中的“A”,单元格B2中的“B”等等

走过去: 单元格B1中的“A”,单元格C1中的“B”等等

数据: 单元格B2

中的第一个值(对应于A,A)

所以,现在你可以在单元格A10中找到你想要的行字母,在单元格A11中找到你想要的列字母。因此,您可以使用以下公式来获得所需的结果:

=INDEX($B$2:$G$7,MATCH(A10,$A$2:$A$7,0),MATCH(B10,$B$1:$G$1,0))

基本上,使用数组上的INDEX()函数,将行与所需的行字母和列匹配到所需的列字母。

希望这是有道理的。