Excelの数値変換について

5 ビュー (過去 30 日間)
健気 大川
健気 大川 2021 年 5 月 27 日
コメント済み: 健気 大川 2021 年 5 月 29 日
図に添付したようにB列に0,1,10の数値があります。この数値を1を見つけたら10を見つけるまでの間の数値を5に変換したいです。現在説明のためC列に変換後を示しています。出力は同じB列に変換したもの上書きしたいです。どなたか助言をお願いいたします。

採用された回答

Hernia Baby
Hernia Baby 2021 年 5 月 27 日
編集済み: Hernia Baby 2021 年 5 月 28 日
find関数で1と10の座標を見つけ、その間を5で埋めます
※存在しないx1を設定していましたのでxに修正しました
clear,clc;
x=xlsread('test2.xlsx');
[idx(:,1), ~] = find(x==1);
[idx(:,2), ~] = find(x==10);
for i = 1:length(idx(:,1))
x(idx(i,1):idx(i,2),1)=5;
end
x
  7 件のコメント
健気 大川
健気 大川 2021 年 5 月 29 日
解決いたしました!何度も質問してしまいお手数おかけいたしました。
本当にありがとうございました!

サインインしてコメントする。

その他の回答 (1 件)

Atsushi Ueno
Atsushi Ueno 2021 年 5 月 27 日
編集済み: Atsushi Ueno 2021 年 5 月 27 日
上記Q&Aを真似てExcelの入出力を追記しました。
% 数値だけ読み込む(Aはテストデータと正解の両方)
[A,~,~] = xlsread('test4matlab.xls');
% テストデータだけをBにおく
B = A(:,1)'
% 結果をおくCを一旦ゼロクリアする
C = zeros(1,size(B,2));
% Cの「B=1の所からB=10の所まで」を5に設定する
C(cell2mat(arrayfun(@colon, find(B==1), find(B==10), 'un', false))) = 5
% 同じB列に変換したもの上書きする
xlswrite('test4matlab.xls', C', 'B2:B24');

カテゴリ

Find more on Just for fun in Help Center and File Exchange

タグ

Community Treasure Hunt

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

Start Hunting!