ループでエクセルのシート数を呼び出し、シート名を連番で定義する方法
7 ビュー (過去 30 日間)
古いコメントを表示
エクセル名「DATA.xlsx」の中のシート1~5を抜き出し、それぞれのシートの変数をDATA1からDATE5で定義したいです。
n=5
for n=1:n
DATA(C)=readtable("DATA.xlsx","Sheet",C)
↓
DATA1=Sheet1のtable
…
DATA5=Sheet5のtable
検索して変数のループ定義がありましたが、どうもうまくいきませんでした。
よろしくお願いします。
1 件のコメント
Atsushi Ueno
2021 年 5 月 26 日
readtable関数の出力型はtableであり「table自体の配列」を作ろうとすると下記エラーが出ます。
線形インデックス付け (添字 1 つ) または多次元インデックス付け (添字 3 つ以上) を使用した
テーブルへの添字付けはできません。行の添字と変数の添字を使用してください。
背景が分からないので何とも言えませんが、他の手段として以下が考えられます。
①for文の中でシート1枚分の処理を行い、処理済シートは次のループで上書きする
②spreadsheetDatastore関数を使い複数のワークシートを読み取る
出力がオブジェクト(matlab.io.datastore.SpreadsheetDatastore)になります
③readtable関数の代わりにreadmatrix関数やreadcell関数を使う
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で スプレッドシート についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!