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

3 次查看(过去 30 天)
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!

采纳的回答

Matt J
Matt J 2025-3-24
编辑:Matt J 2025-3-24
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

更多回答(1 个)

Walter Roberson
Walter Roberson 2025-3-24
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.

类别

Help CenterFile Exchange 中查找有关 Tables 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by