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

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 Comments

Please provide the Excel file you are using and your code
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'));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Sign in to comment.

Answers (1)

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

Asked:

on 1 Jun 2021

Answered:

on 7 Jun 2021

Community Treasure Hunt

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

Start Hunting!