我有一个数据集,其中包含一系列 10 个测量值,每个测量值都有 3 个坐标。我正在计算测量值之间的 3D 笛卡尔差异,即测量 1 与测量 2、测量 1 与测量 3 等。
我如何才能自动计算以获得所有可能的输出(1 对 2-10、2 对 3-10 等)?
谢谢
答案1
那这个呢:
所用公式:
- 组合[ID]:
=ROW()-ROW(Combinations[[#Headers],[ID]])
- 组合[H1]:
=SUM(([@ID]=HelpingTable[H1])*1)
作为数组公式(经确认CTRL+SHIFT+ENTER
) - 组合[M1]:
=SUM(INDEX([H1],1):[@H1])
- 组合[M2]:
=IF([@H1]=1,[@M1]+[@H1],OFFSET([@M2],-1,0)+1)
- 组合[X1]:
=INDEX(MeasurementTable[X],MATCH([@M1],MeasurementTable[Meas. No.],0))
- 组合[Y1] 和组合[Z1] 只是改变里面的字母
[]
- 组合[X2]:
=INDEX(MeasurementTable[X],MATCH([@M2],MeasurementTable[Meas. No.],0))
- 组合[Y2] 和组合[Z2] 只是改变里面的字母
[]
- 组合[区别]:
=SQRT(([@X1]-[@X2])^2+([@Y1]-[@Y2])^2+([@Z1]-[@Z2])^2)
- 帮助表[测量]:
=ROW()-ROW(HelpingTable[[#Headers],[Meas.]])
- 帮助表[H1]:
=ABS(((MAX([Meas.])-[@[Meas.]]+1)-1)/2*(MAX([Meas.])-[@[Meas.]]+1)-45)+1
MeasurementTable 仅包含数据 - 没有功能。
根据需要拉伸桌子。
组合表中所需的行:=COMBIN(<Measuremnt count>,2)
答案2
以下是我认为更传统的方法(使用与卢塞)
建立一个带有行/列标题的表格(列 F 和行 1)。然后在单元格 G2 中使用距离公式(复制/粘贴以填充输出表):
=SQRT(SUM((VLOOKUP(G$1,Table1,SEQUENCE(,3,2),FALSE)-VLOOKUP($F2,Table1,SEQUENCE(,3,2),FALSE))^2))
分解:
SQRT(SUM(( - )^2))
距离公式的外部部分
VLOOKUP(lookup_value)
根据行/列标题确定第一个或第二个测量编号
SEQUENCE()
返回表中第 2、3 或 4(X、Y、Z)列的值
透视 Lluser 的结果应该会产生与我所呈现的相同的输出表