1シート内3つの表を読み込むには

お疲れ様です。お世話になります。
下記の内容で、設定したいのですが、うまく出来ずに困っています。

Excelのシートに、同じ様式の表が3つ縦に並んでいます。
各表をデータテーブルに読み込もうとしています。

1つ目の表の開始位置(左上端のセル位置)は固定になっているのですが
2つ目、3つ目表の開始位置は、各表の件数(行数)が変わるため、固定できません。

各表毎の区切りは、
・空白行(1行)が入る
・2つ目、3つ目の表は、固定タイトル行、コメント行(2行)が入る
この3行で区切られます。

サンプルデータを添付します。

すみませんが、よろしくお願いいたします。

Hi @nagahama-digital

Your attachments are not appear here. Could you attach the files one more time.

Elaborate your query more for better understanding.

If your query is you want to write all the three tables in to an excel. Let me know.

すみません。アップロード操作でエラーになり、添付できていません。
解決まで待っていただけますか。

1 Like

Attach the screenshots instead of attaching the file. @nagahama-digital

Or wait for sometime then you are able to upload the file.

ご案内いただきありがとうございます。

スクリーンショットを添付するには、どうすればよいですか。
jpeg、pngファイルをドラッグすることはできませんでした。
よろしくお願いします。

When you are giving reply there is a upload button at the top of reply window. Click on that then you can upload the images. @nagahama-digital

サンプルデータのスクリーンショットを添付します。

よろしくお願いします。

こんにちは

以下サンプルいかがでしょうか?(各パートを別々のシートに出力しています。)

Sample20230801-2L.zip (9.3 KB)

Yoichi様
サンプル提示いただき、ありがとうございます。
2つ目の代入で、左辺「arrRowIndex」に対する右辺の部分の
詳細を教えていただけないでしょうか。
何をどうやっているのか、解読力が伴っておらず申し訳ありません。
よろしくお願いします。

こんにちは

添付しているサンプルの方は動作しましたでしょうか?

dt.AsEnumerable.Where(Function(r) r.ItemArray.All(Function(o) o is Nothing OrElse String.IsNullOrEmpty(o.ToString()))).Select(Function(r) dt.Rows.IndexOf(r)).Concat({dt.Rows.Count}).ToArray()

まず Where(Function(r) r.ItemArray.All(Function(o) o is Nothing OrElse String.IsNullOrEmpty(o.ToString())))の部分ですべてが空欄の行を抽出しています。

次に、上記の空行に対して、.Select(Function(r) dt.Rows.IndexOf(r)) でそれぞれの行数(何行目か)を取得しています。その行数を元に、後続処理でDataTableを分割していきます。

Concat({dt.Rows.Count}) の部分はDataTableの最終行は空行ではないので、総行数から、最後のDataTableを抽出する行数を算出し、上記に付け加えています。

結果としてDataTableとして区切りたい各行数の配列が取得できます。

ありがとうございます。
サンプルの方、動作確認できました。
また、詳しく説明いただきありがとうございます。
サンプルを取り入れさせていただき、シナリオ作成進めます。

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.