私はSQLを利用してこれを行います。この例を見れば何ができるかがわかると思いますが、値をクリーンアップする必要があります。
Names Default To Here(1);
dt_main = Open("$DOWNLOADS/maintable(1).jmp");
dt_ref = Open("$DOWNLOADS/referencetable(1).jmp");
dt_concat = Query(
Table(dt_main, "t1"),
"\[SELECT type, "X Coord", "Y Coord", "Wafer ID", GROUP_CONCAT(Value, ', ') as Value
FROM t1
group by type, "X Coord", "Y Coord", "Wafer ID"
]\"
);
dt_split = dt_concat << Split(
Split By(:Type),
Split(:Value),
Group(:X Coord, :Y Coord, :Wafer ID)
);
dt_ref << Update(
With(dt_split),
Match Columns(:X Coord = :X Coord, :Y Coord = :Y Coord, :Wafer ID = :Wafer ID),
Add Columns from Update Table(:A, :B),
Replace Columns in Main Table(None)
);

Listagg/Concatenate/GROUP_CONCATをウィッシュリストの要約プラットフォームに追加すると、これが非常に簡単になります。
編集:
キャストは小数点を取り除くのにかなり簡単な方法のようです
もっと見る...
Names Default To Here(1);
dt_main = Open("$DOWNLOADS/maintable(1).jmp");
dt_ref = Open("$DOWNLOADS/referencetable(1).jmp");
dt_concat = Query(
Table(dt_main, "t1"),
"\[SELECT type, "X Coord", "Y Coord", "Wafer ID", GROUP_CONCAT(CAST(Value as int), ', ') as Value
FROM t1
group by type, "X Coord", "Y Coord", "Wafer ID"
]\"
);
dt_split = dt_concat << Split(
Split By(:Type),
Split(:Value),
Group(:X Coord, :Y Coord, :Wafer ID)
);
Close(dt_concat, no save);
dt_ref << Update(
With(dt_split),
Match Columns(:X Coord = :X Coord, :Y Coord = :Y Coord, :Wafer ID = :Wafer ID),
Add Columns from Update Table(:A, :B),
Replace Columns in Main Table(None)
);
Close(dt_split, no save);