I would use the discretize function, using your comp data to set the edges (col 1) as well as the new values (col 2). Here's some code. Be sure to read the linked documentation page to understand how discretize works. Most of my code just ensures the formatting is preserved when loading the data.
comp = readtable('Data.xlsx','Sheet',1);
opts = detectImportOptions("Data.xlsx","Sheet",2);
opts.VariableNames = ["Time", "Voltage"];
opts = setvartype(opts,["duration","double"]);
opts = setvaropts(opts,"Time","InputFormat",'hh:mm:ss.SSS');
test = readtimetable('Data.xlsx',opts,"Sheet",2);
comp = sortrows(comp,"OCV","ascend");
test.Percent = discretize(test.Voltage,[0;comp.OCV],comp.SOC)
test =
Time Voltage Percent
____________ _______ _______
00:00:00.000 3.1005 50
00:01:00.000 3.248 55
00:02:00.000 3.3265 60
00:03:00.000 3.3866 60
00:04:00.000 3.4343 65
00:05:00.000 3.4728 65
00:06:00.000 3.4976 65
00:07:00.000 3.5047 70
00:08:00.000 3.5097 70
00:09:00.000 3.515 70
00:10:00.000 3.5202 70
00:11:00.000 3.5252 70
00:12:00.000 3.5308 70
00:13:00.000 3.536 70
00:14:00.000 3.5416 70
00:15:00.000 3.5478 70