将列数据移动到相关matrix
我正在寻找一个解决scheme(避免vba)来重组3个代表data1,data2和f(data1,data2)的列为2d数组。
数据如下:
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是string,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
谢谢 !!!
所以你需要设置标题,正确的行和列标题。
那么如果左上angular的单元格把这个公式:
=IFERROR(INDEX($C:$C,MATCH($G2&"|"&H$1,$A:$A&"|"&$B:$B,0)),IFERROR(INDEX($C:$C,MATCH(H$1&"|"&$G2,$A:$A&"|"&$B:$B,0)),1))
这是一个数组公式,需要用Ctrl – Shift – Enter确认,而不是只input。 复制并填充数组的其余部分。
一个警告需要时间来计算,可以通过将整列引用限制为只有数据的引用来加快速度。 $C:$C
在这个例子中是$C$1:$C$10
。
这样的事情?
=IF(F$1=$E2,1,INDEX($C$1:$C$10,IFERROR(MATCH(F$1&"_"&$E2,$A$1:$A$10&"_"&$B$1:$B$10,),MATCH($E2&"_"&F$1,$A$1:$A$10&"_"&$B$1:$B$10,))))
这是一个数组公式,并且必须用Ctrl + Shift + Enter确认 。
如果你担心&
你可以避免这样的:
=IF(F$1=$E2,1,INDEX($C$1:$C$10,MAX(ROW($1:$10)*((F$1=$A$1:$A$10)*($E2=$B$1:$B$10)+($E2=$A$1:$A$10)*(F$1=$B$1:$B$10)))))
这是一个数组公式,并且必须用Ctrl + Shift + Enter确认 。