You can to it simply like this. It is not that commonly known but you can make UPDATE on a SELECT
UPDATE
(SELECT
company, direction, TYPE, YEAR, MONTH, VALUE,
RANK() OVER (PARTITION BY direction, TYPE, YEAR, MONTH ORDER BY VALUE DESC) AS NEW_RANK
FROM table1) a
SET RANK = NEW_RANK;