Effacer les filtres
Effacer les filtres

Overwrite single row excel information based on Unique ID in column data

3 vues (au cours des 30 derniers jours)
Ganesh Naik
Ganesh Naik le 1 Juin 2021
Hi all,
Each time when I execute some functions I am storing the results in an excel file. Rows of column one contains unique ID for each subject. Whenever I execute the function new results are automatically appended into a new row. Whenever the same information is executed, I would like to overwrite rows containing unique ID information with a warning sign such as “The information is already exists would you like to overwrite them” etc. I tried this with “unique” function in matlab but no success. Any help in this regard is highly appreciated.
  2 commentaires
Monika Jaskolka
Monika Jaskolka le 1 Juin 2021
Please provide the Excel file you are using and your code
Ganesh Naik
Ganesh Naik le 2 Juin 2021
Hi Monika, thanks for your email. Please find below the code and excel sheet attached. I would like to overwrite any rows if the data with same lastname is executed. I have created a dummy problem to reflect my original data.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
LastName = {'Sam';'John';'Bella';'Diana';'Kelly'};
Age = [48;53;58;80;29];
Smoker = logical([1;0;1;0;1]);
Height = [61;59;64;69;62];
Weight = [126;153;141;153;129];
BloodPressure = [104 95; 119 79; 115 85; 127 85; 112 81];
Table = table(LastName,Age,Smoker,Height,Weight,BloodPressure)
writetable(Table,"BP_Analysis.xlsx","WriteMode","append","AutoFitWidth",false);
%Overwirte the rows "Lastname" if same results are executed
%again.
data = readtable('BP_Analysis.xlsx','PreserveVariableName', true);
data.Properties.VariableNames{1} = 'Lastname';
[~,idx]=unique(strcat('Lastname','rows'));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Connectez-vous pour commenter.

Réponses (1)

Vimal Rathod
Vimal Rathod le 7 Juin 2021
Hi,
You could use the find and strcmp functions to find the index where the name or uniqueIndex matches.
newName = "Diana";
data = readtable('BP_Analysis.xlsx','PreserveVariableName', true);
idx = find(strcmp(data.Lastname,newName));
If find function returns empty column vector then there is no match in the available uniqueIds and you could append or else if idx is a number you will get the index.
Refer the following links to know more about find and strcmp functions.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by