ループでエクセルのシート数を呼び出し、シート名を連番で定義する方法
10 views (last 30 days)
Show older comments
エクセル名「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 Comment
Atsushi Ueno
on 26 May 2021
readtable関数の出力型はtableであり「table自体の配列」を作ろうとすると下記エラーが出ます。
線形インデックス付け (添字 1 つ) または多次元インデックス付け (添字 3 つ以上) を使用した
テーブルへの添字付けはできません。行の添字と変数の添字を使用してください。
背景が分からないので何とも言えませんが、他の手段として以下が考えられます。
①for文の中でシート1枚分の処理を行い、処理済シートは次のループで上書きする
②spreadsheetDatastore関数を使い複数のワークシートを読み取る
出力がオブジェクト(matlab.io.datastore.SpreadsheetDatastore)になります
③readtable関数の代わりにreadmatrix関数やreadcell関数を使う
Answers (0)
See Also
Categories
Find more on スプレッドシート 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!