This may not be the most efficient way, but here is how I would do it.
I hope some of many gurus here may suggest more efficient approach. Your code is slightly modifed and the Data.csv file is assumed to be in the current folder. I made this modification so the code is not too long.
% Initialization steps:
clc; clear; close all;
workspace; % Make sure the workspace panel is showing.
format long g; format compact;
%% open files and add to dataset
k = 1;
% import the full data matrix
xx = readcell('Data.csv');
% Go through the matrix and take dates and impedance parameters
j = 0;
for i = 1:10:height(xx)
j=j+1;
yy = xx(i,1);
%data(k).data(j).name = erase(yy," GMT+0100 (ora solare Europa occidentale)Frequency - Amplitude - Phase-Rs-Rp-Xs-Xp"); % deletes the portion of the text that is not needed
x1 = cell2table(xx(i+1:i+9,1:width(xx)));
data(k).data(j).freq = table2array(x1(1,:)).';
data(k).data(j).imp = table2array(x1(2,:)).';
data(k).data(j).phase = table2array(x1(3,:)).';
data(k).data(j).Rs = table2array(x1(4,:)).';
data(k).data(j).Rp = table2array(x1(5,:)).';
data(k).data(j).Cs = table2array(x1(6,:)).';
data(k).data(j).Cp = table2array(x1(7,:)).';
data(k).data(j).Tin = table2array(x1(8,:)).';
data(k).data(j).Tout = table2array(x1(9,:)).';
data(k).data(j).Real = data(k).data(j).imp.*(cos(data(k).data(j).phase*pi/180)); % Real
data(k).data(j).Imag = data(k).data(j).imp.*(sin(data(k).data(j).phase*pi/180)); % Imagin
data(k).data(j).date = string(yy{1}(5:15));
data(k).data(j).Time = string(yy{1}(16:24));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Here is the section to extract and sort data by dates
dates = [data.data.date];
% use only unique dates
unique_dates = unique(dates);
numunique_dates = numel(unique_dates);
data_days(numunique_dates) = struct('Day', "", 'Time', [], 'Tin', []);
for k = 1:numunique_dates
idx = string(dates) == unique_dates(k); % Index of data with the current date
data_days(k).Day = unique_dates(k);
Tin_temp = [data.data(idx).Tin];
% Use only first entry in Tin, because all are the same in each day
data_days(k).Tin = Tin_temp(1,:); % Tin data for the current date
timeStrings = strcat(unique_dates(k), string([data.data(idx).Time]));
data_days(k).Time = datetime(timeStrings, 'InputFormat', 'MMM dd yyyy HH:mm:ss');
figure(k)
plot(data_days(k).Time, data_days(k).Tin);
grid on;
title(data_days(k).Day);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%