データテーブル内の日付の年月日それぞれの取得する方法

ExcelをRead RangeでDataTableに出力し、
データ内の日付欄の年月日をそれぞれ取得し、
その後ループで年月日をそれぞれ使用したいたいのですが、
全く分からずお手上げ状態の為、ご教授お願いしたいです。

元のExcelデータ
No,日付,名前
1,2019/5/8,Aさん
2,2019/5/13,Bさん
3,2019/5/16,Cさん
4,2019/5/17,Dさん
5,2019/5/21,Aさん

データイメージ
No,年,月,日,名前
1,2019,5,8,Aさん
2,2019,5,13,Bさん
3,2019,5,16,Cさん
4,2019,5,17,Dさん
5,2019,5,21,Aさん

1 Like

こんにちは!
あなたの懸念を念頭に置いた私の解決策は次のとおりです。
1.データテーブル作成アクティビティを使用します。 データテーブル名がdtOutputだとしましょう。
dtOutputには5つの列があります(いいえ、年、月、日、名前)。
2. Excel Application Scope内で、Read Rangeアクティビティを使用します。
3.各行について
3.1 arrDate(String 型)= row( “Date”)。Split( “/”)を代入する
3.2 dtOutputにデータ行を追加する
ArrayRowは次のようになります。{row( “No”)。ToString、arrDate(0).ToString、arrDate(1).ToString、arrDate(2).ToString、row( “Name”)
データテーブルは次のようになります。dtOutput

2 Likes

その後、dtOutputデータテーブルをループ処理するためにfor Each Rowを使用できます。

お役に立てれば

1 Like

早速の解答ありがとうございます。

現在教えて頂いた内容を読みながら操作してます。
ちなみに教えて頂いた手順は、
1.データテーブル作成(Build Data Tabl)アクティビティで
(No,、年、月、日、名前)のテーブルを作成し、出力をdtOutputとする。
2.Excel Application Scope内で、Read Rangeアクティビティを使用して、
元のExcelファイルを読み込み。
3.Excel Application Scope内にAssignを追加して、arrDate(String 型)= row(“Date”).Split( “/”)と入力ということでしょうか?
rowはどこからでてきたんでしょうか?

せっかく教えてもらったのに、理解できなくてすいません。

こんにちは! Read Rangeアクティビティを使用すると(Excelファイルを読み込むため)、そのアクティビティの出力はデータテーブルになります(データテーブル名としてdtInputとします)。 そのデータテーブルは、For Each Rowで使用するものです。

2 Likes

いろいろと論点がありますがー。
① 表記記載の元エクセルデータの年月日は1セルに記載されていますか?
→その場合、[Read Range]アクティビティで取得すると、自動的に年、月、日をカラムに割ってもらえないように思います。年月日で1カラムになると思います。
→[Read Range]で取得したデータテーブルをそのまま[Write CSV]等で出力してみてください。

② 年月日の形の文字から、年だけ、月だけ、日だけ を個別に取得することができます。
→無理に年月日をセルに分割する必要はないのでは?

1 Like

教えていただいた方法で作成したんですが、
3.1 arrDate(String 型)= row( “Date”).Split( “/”)を代入する
上記を入力すると、画像のようなコンパイラエラーが表示されてしまします。

エラー内容
Compiler error(s) encontered processing expression “row(“日付”).split(”/")".
Option Strict Onでは、遅延バインディングを使用できません。

せっかく教えて頂いたのに、活かせなくすいません。

1 Like

図解付きの説明ありがとうございます。
すごく分かり易かったです!

1 Like

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