När du säger senast inmatade cell i respektive kolumn så antar jag att du menar cellen längst ner? inte den tidsmässigt senaste cellen (om någon har rättat rad3 t.ex)?
Det finns en kompakt variant. Men den bygger på lite excel hokus-pokus och är kanske lite svår att förstå. Den här returnerar värdet längst ner i kolumn B:
=LETAUPP(2;1/(B:B<>"");B:B)
Kolla den här sidan för förklaring:
https://exceljet.net/formula/get-value-of-last-non-empty-cell
Sen antar jag att du vet var första måttet är (t.ex rad2)
Då borde formeln för cm bli
=LETAUPP(2;1/(B:B<>"");B:B)-B2
Och %
=(LETAUPP(2;1/(B:B<>"");B:B)-B2)/b2
OBS att du måste formatera cellen som % eller multiplicera med 100
Den här varianten är förmodligen enklare att begripa, även om den blir längre
Du kan ta reda på radnumret för den sista cellen. Det gör du enklast med en kombination av RAD(cell adress) och något slags max
Vi tar kolumn B som exempel. Den här formeln=
(B:B<>"") Kollar varje rad. om det finns ett innehåll i cellem (dvs den är skild från ingenting <>"") så blir värdet sant (1), annars falskt (0).
Om du multiplicerar det med radnumret för varje cell så kommer den att returnera 0 för tomma celler och radnumret för celler med värden:
(B:B<>"")*RAD(B:B)
Sen behöver du bar ta reda på vilket värde som är högst. tyvär funkar inte det här direkt (i äldre excel):
=MAX((B:B<>"")*RAD(B:B))
Eftersom det blri en matrisformel. Så du får berätta att du vill ha ut det första värdet. Exempelvis med hjälp av index()
=INDEX(MAX((B:B<>"")*RAD(B:B));1)
Så nu vet du vilken rad som är sist. Sen får du hämta det värdet. Exempelvis så här:
=INDEX(B:B;INDEX(MAX((B:B<>"")*RAD(B:B));1))
cm-formel
=INDEX(B:B;INDEX(MAX((B:B<>"")*RAD(B:B));1))-B2
procent-formel
=(INDEX(B:B;INDEX(MAX((B:B<>"")*RAD(B:B));1))-B2)/B2