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

조회 수: 5 (최근 30일)
KD
KD 2025년 3월 24일
댓글: KD 2025년 3월 24일
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