将列数据移动到相关矩阵
Move Columnar Data to Correlation Matrix
我正在寻找一种解决方案(避免 vba)将代表 data1、data2 和 f(data1,data2) 的 3 列重新组织到一个二维数组中。
数据如下:
X1 X2 Z_1_2
X1 X3 Z_1_3
X1 X4 Z_1_4
X1 X5 Z_1_5
X2 X3 Z_2_3
X2 X4 Z_2_4
X2 X5 Z_2_5
X3 X4 Z_3_4
X3 X5 Z_3_5
X4 X5 Z_4_5
编辑:我会提供更多细节...
X 是字符串,Z 是数字。
结果应该如下:
X1 X2 X3 X4 X5
X1 1 Z_1_2 Z_1_3 Z_1_4 Z_1_5
X2 Z_1_2 1 Z_2_3 Z_2_4 Z_2_5
X3 Z_1_3 Z_2_3 1 Z_3_4 Z_3_5
X4 Z_1_4 Z_2_4 Z_3_4 1 Z_4_5
X5 Z_1_5 Z_2_5 Z_3_5 Z_4_5 1
谢谢!!!
因此您需要设置 headers,正确设置行和列 headers。
那么如果左上角的单元格输入这个公式:
=IFERROR(INDEX($C:$C,MATCH($G2&"|"&H,$A:$A&"|"&$B:$B,0)),IFERROR(INDEX($C:$C,MATCH(H&"|"&$G2,$A:$A&"|"&$B:$B,0)),1))
这是数组公式,需要用Ctrl-Shift-Enter[=31=确认] 而不是直接输入。复制并填充数组的其余部分。
一个警告这需要时间来计算,可以通过将完整的列引用限制为仅包含有数据的列来加快速度; $C:$C
在这种情况下将是 $C:$C
.
类似的东西?
=IF(F=$E2,1,INDEX($C:$C,IFERROR(MATCH(F&"_"&$E2,$A:$A&"_"&$B:$B,),MATCH($E2&"_"&F,$A:$A&"_"&$B:$B,))))
This is an array formula and must be confirmed with Ctrl+Shift+Enter.
如果你担心 &
你可以这样避免它:
=IF(F=$E2,1,INDEX($C:$C,MAX(ROW(:)*((F=$A:$A)*($E2=$B:$B)+($E2=$A:$A)*(F=$B:$B)))))
This is an array formula and must be confirmed with Ctrl+Shift+Enter.
我正在寻找一种解决方案(避免 vba)将代表 data1、data2 和 f(data1,data2) 的 3 列重新组织到一个二维数组中。
数据如下:
X1 X2 Z_1_2
X1 X3 Z_1_3
X1 X4 Z_1_4
X1 X5 Z_1_5
X2 X3 Z_2_3
X2 X4 Z_2_4
X2 X5 Z_2_5
X3 X4 Z_3_4
X3 X5 Z_3_5
X4 X5 Z_4_5
编辑:我会提供更多细节...
X 是字符串,Z 是数字。
结果应该如下:
X1 X2 X3 X4 X5
X1 1 Z_1_2 Z_1_3 Z_1_4 Z_1_5
X2 Z_1_2 1 Z_2_3 Z_2_4 Z_2_5
X3 Z_1_3 Z_2_3 1 Z_3_4 Z_3_5
X4 Z_1_4 Z_2_4 Z_3_4 1 Z_4_5
X5 Z_1_5 Z_2_5 Z_3_5 Z_4_5 1
谢谢!!!
因此您需要设置 headers,正确设置行和列 headers。
那么如果左上角的单元格输入这个公式:
=IFERROR(INDEX($C:$C,MATCH($G2&"|"&H,$A:$A&"|"&$B:$B,0)),IFERROR(INDEX($C:$C,MATCH(H&"|"&$G2,$A:$A&"|"&$B:$B,0)),1))
这是数组公式,需要用Ctrl-Shift-Enter[=31=确认] 而不是直接输入。复制并填充数组的其余部分。
一个警告这需要时间来计算,可以通过将完整的列引用限制为仅包含有数据的列来加快速度; $C:$C
在这种情况下将是 $C:$C
.
类似的东西?
=IF(F=$E2,1,INDEX($C:$C,IFERROR(MATCH(F&"_"&$E2,$A:$A&"_"&$B:$B,),MATCH($E2&"_"&F,$A:$A&"_"&$B:$B,))))
This is an array formula and must be confirmed with Ctrl+Shift+Enter.
如果你担心 &
你可以这样避免它:
=IF(F=$E2,1,INDEX($C:$C,MAX(ROW(:)*((F=$A:$A)*($E2=$B:$B)+($E2=$A:$A)*(F=$B:$B)))))
This is an array formula and must be confirmed with Ctrl+Shift+Enter.