Вы можете сделать это следующим образом:
=arrayformula(
{"Begin", B8:H8;
"Last", {
indirect("B" & max(filter(row(B8:B67),B8:B67<>""))),
indirect("C" & max(filter(row(C8:C67),C8:C67<>""))),
indirect("D" & max(filter(row(D8:D67),D8:D67<>""))),
indirect("E" & max(filter(row(E8:E67),E8:E67<>""))),
indirect("F" & max(filter(row(F8:F67),F8:F67<>""))),
indirect("G" & max(filter(row(G8:G67),G8:G67<>""))),
indirect("H" & max(filter(row(H8:H67),H8:H67<>"")))}
;"Different",{B8:H8}-{
indirect("B" & max(filter(row(B8:B67),B8:B67<>""))),
indirect("C" & max(filter(row(C8:C67),C8:C67<>""))),
indirect("D" & max(filter(row(D8:D67),D8:D67<>""))),
indirect("E" & max(filter(row(E8:E67),E8:E67<>""))),
indirect("F" & max(filter(row(F8:F67),F8:F67<>""))),
indirect("G" & max(filter(row(G8:G67),G8:G67<>""))),
indirect("H" & max(filter(row(H8:H67),H8:H67<>"")))}})
И вы должны перейти к дополнительным столбцам после столбца H (включая изменение B8: H8 на B8: ~ 8), и если какая-либо дополнительная строка, вы должны изменить номер строки 67 на следующий номер последней строки ваших данных
или
=arrayformula({
{"Stage";"First";"Last";"Diff"},
{B7:H7;
B8:H8;transpose(
query(split(
query(transpose(
query(text(row(A8:A66)*not(isblank(B8:H66)),"0000") & ":" & B8:H66,
"Select " & join(",","max(Col" & column(B7:H7)-COLUMN(B7)+1 & ")"))
),"Select Col2"),":",true,false),"Select Col2"));
B8:H8-transpose(
query(split(
query(transpose(
query(text(row(A8:A66)*not(isblank(B8:H66)),"0000") & ":" & B8:H66,
"Select " & join(",","max(Col" & column(B7:H7)-COLUMN(B7)+1 & ")"))
),"Select Col2"),":",true,false),"Select Col2"))
}})