我有一个像下面这样的矩阵,
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中实现这一目标。
答案 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))
然后复制
答案 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
所以,现在你可以在单元格A10
中找到你想要的行字母,在单元格A11
中找到你想要的列字母。因此,您可以使用以下公式来获得所需的结果:
=INDEX($B$2:$G$7,MATCH(A10,$A$2:$A$7,0),MATCH(B10,$B$1:$G$1,0))
基本上,使用数组上的INDEX()
函数,将行与所需的行字母和列匹配到所需的列字母。
希望这是有道理的。