
У меня есть набор данных, содержащий серию из 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)
- HelpingTable[Измерение]:
=ROW()-ROW(HelpingTable[[#Headers],[Meas.]])
- Вспомогательная таблица[H1]:
=ABS(((MAX([Meas.])-[@[Meas.]]+1)-1)/2*(MAX([Meas.])-[@[Meas.]]+1)-45)+1
Таблица измерений содержит только данные — без функций.
Растягивайте таблицы по мере необходимости.
Строки, необходимые в таблице «Комбинации»:=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 должен привести к той же выходной таблице, которую я представляю.