How to fill a blank cell with the value of the cell above it in a table?

6 visualizzazioni (ultimi 30 giorni)
Hello,
I am running a script that reads through a large excel file and creates a table. One of the columns in the file will sometimes have blank cells. The value should be the value that is above it, but this sheet is large and updated often, so it would be too much to manually update it each time.
This is the code I'm currently using that isn't working:
for j = 1:height(data)
%Fill in blank data
if isempty(data.Var1)
data.Var1 = fillmissing(data.Var1,'previous');
end
end
I attached the output that I'm getting. Instead of 0x0 char, it should be the value listed above.
Thank you!

Risposta accettata

Matt J
Matt J il 24 Mar 2025
Modificato: Matt J il 24 Mar 2025
The only line of code you need is this one
data.Var1=fillmissing(data.Var1,'previous')
Get rid of the lines around it.
Var1={'ABC01';'';'ddddd';''}; Var2=(1:4)';
data=table(Var1,Var2)
data = 4x2 table
Var1 Var2 __________ ____ {'ABC01' } 1 {0x0 char} 2 {'ddddd' } 3 {0x0 char} 4
data.Var1=fillmissing(data.Var1,'previous')
data = 4x2 table
Var1 Var2 _________ ____ {'ABC01'} 1 {'ABC01'} 2 {'ddddd'} 3 {'ddddd'} 4

Più risposte (1)

Walter Roberson
Walter Roberson il 24 Mar 2025
if isempty(data.Var1)
You are testing all of the Var1 component of data at the same time there, which does not make sense since you are inside a for loop.
Your code should just be
data.Var1 = fillmissing(data.Var1, 'previous');
with nothing else -- no for loop.

Categorie

Scopri di più su Tables in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by