marita
(Marita)
December 19, 2024, 7:51am
1
お世話になっております。
2つのExcelを共通の番号で紐づけして、条件分岐で条件に合わせて値を書き込む作業をしたいです。
まず、添付しているファイルのAのExcelのL列とBのExcelのJ列を紐づける作業ですが、それぞれのファイルのシートを読み込んで変数に保存し、それをデータテーブルを結合で結合するのだと思いますが、データ テーブルを結合: 引数 ‘列名’ の値が設定されていないかまたは無効です。とエラーが出てしまいます。
その後の条件がJ列に1か4が入っているかと3が入っているかで変わってくるのですが、条件分岐に進むまでに、結合した変数をどのように処理すればいいかが分からなくて困っています。
test3.zip (307.8 KB)
Yoichi
(Yoichi)
December 19, 2024, 8:06am
2
こんにちは
B.xlsxの方ですが、A2セルから読み込む必要があると思いますので、以下のようにしてみてください。
marita
(Marita)
December 20, 2024, 12:57am
3
ありがとうございます。
エラーは出なくなりましたが、BのExcelに書き込みはできていません。
結合した変数を使えていないからかと思いますが、どこに変数を入れると良いでしょうか?
Yoichi
(Yoichi)
December 20, 2024, 1:10am
4
上記だけでは実現したいことがわかりませんので、何とも言えないところです。
取り急ぎdtResultを別のファイルに書き出し、内容確認→その上でどの部分をどのように書き込むかを検討いただく方が良いように思えます。
marita
(Marita)
December 24, 2024, 1:08am
5
返信が遅くなり申し訳ありません。
アドバイスいただいた通り、書き出してみました。
その後、条件分岐を設定してみたのですが
条件分岐 (if): Unable to cast object of type ‘System.String’ to type ‘System.Int32’.
とエラーが出てしまいました。
どこが問題でしょうか?
test3.zip (346.5 KB)
Yoichi
(Yoichi)
December 24, 2024, 2:04am
6
入金区分に数値以外のデータがあるためと思います。
データテーブルを結合した直後のDataTableをxlsx等に書き出して、想定通りの結果かどうかをまずは確認すると良いかと思います。
marita
(Marita)
December 24, 2024, 3:01am
7
添付した中には書き出す作業は入れていませんでしたが実際は試していて、結合直後のDataTableを書き出したものがBのExcelの「テスト」というシートでした。
想定通りの結果にはなっていて、入金区分にも数値しか入っていないのでどこに原因があるのかが分からない状況です。
Yoichi
(Yoichi)
December 24, 2024, 3:21am
8
入金区分が空欄である行が含まれているからです。
Full JoinではなくLeft JoinやInner Joinを検討するか(要件次第です)、Full Join後に不要行をフィルターしてみてください。
marita
(Marita)
December 24, 2024, 4:27am
9
ありがとうございます。
空白も対象だったんですね。
どちらにするか、調べて試してみます。
system
(system)
Closed
December 27, 2024, 4:28am
10
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.