Excelの特定の列の件数取得に関して

excelの特定の列の件数取得に関して教えていただきたく思います。
read rangeでデータベーステーブル:DTにデータを保管
そのあと、excelの特定の列の件数を算出したく思います。
assign:
VCNT=DT.Compute(“count([ID])”, String.Empty)
VCNTの型はobjectにすると文法チェックが通りました。
この後、
write line:
VCNT.tostringとしました。

しかしassginで、下記エラーとなりました。

Assign : Invalid usage of aggregate function Count() and Type: Object.

VCNTの型と変えても件数が取得できません。

特定の列の件数の取得の方法に関してご教示いただければと思います。

DT.rows.countの場合、列の最大値の件数を取得してしまうので
各列の行の件数がバラバラなのでどうすべきかということで考えましたが
うまくいきません。

こんにちは

DT.Select(“ID is not null”)
でDataRow配列が返ってくるので、これのlengthをとればよいのではと思います。
(Selectの条件は適当に調整してください)

3 Likes

ありがとうございます。
指定の列の件数は
DT.Select(“ID is not null”).length
にて取得できました。

失礼ながらご教示していただきたいことがあります。
excelの6行目をヘッダとしてある項目の件数をカウントするとき
read range A6 ヘッダーありにしてDT.Select(“ID is not null”).lengthとした場合、件数が0となります。
先回に引き続きご教示いただければと思います。

こんにちは

具体的なデータが無いとなんともいえませんが...
そもそもDataTableが想定どおりにとれていないとか、そのあたりから調査が必要に思えます。

1 Like

ありがとうございます。
read range B6:B6000として、DT01.rows.countとすると
件数が5994となります。
もし可能でございましたら、nullあるいは""を省いた方法があればご教示お願いします。
DT.Select(“ID is not null”).lengthではデータ件数が0件でした。
すみません。

こんにちは

もし可能でございましたら、nullあるいは""を省いた方法があればご教示お願いします。
DT.Select(“ID is not null”).lengthではデータ件数が0件でした。

ここで記載されているDTはDT01のことでしょうか?それともRangeを"A6"として取得したものでしょうか?
前者であれば、件数が0件ということは既にnullが省かれている状態と思います。やりたいことは何になりますでしょうか?
後者なら、まずはDT.rows.countを確認して、DataTableが想定どうりの範囲で取得できているかを確認したほうが良いと思います。

1 Like

記載ミス申し訳ございません。
再度事象を記載します。

read range B6:B6000として、DT01.rows.countとすると
件数が5994となります。
同様に
read range B6:B6000として
DT01.Select(“ID is not null”).lengthではデータ件数が0件でした。

データベーステーブルは同一でありかつ、
件数確認処理までは同一処理です。

こんにちは

「何が問題なのか」がよくわかり難いのですが、ID列の各行の値がnullのため、結果として0件なのではないでしょうか?
ダミーでも良いので事象の発生するデータを提示やupいただいた方が適切な回答ができるかもしれません。

1 Like

すみません。
サンプルデータです。
計算式が入力されていない件数を数えたく思います。
件数.xls (278.5 KB)

こんにちは

upいただいたファイルを手元の環境(Windows10 EXCEL2013 UiPath 2019.3.0CE(EXCEL Activity Package 2.5.2))で処理してみましたが特段問題なく処理できているようで、以下のワークフローで6が返ってきます。

img20190325-1s

環境の問題かもしれませんね。Activity Packageを最新にしてみる等は試す価値があるかもしれません。

2 Likes

ありがとうございます。
studio2018.2.3なのでmanage packagesがinstallできないものあります。
近々にヴァージョンアップ予定ですのでその時対応します。
色々ありがとうございました。

すみません。
arrDRの型は何になるでしょうか。

何度も申し訳ございません。

こんにちは

DataTableクラスのSelectメソッドの返り値なので、DataRow配列になります。

すみません。
EXCEL Activity Package 2.5.2
studio2018.2.3
excel365
windows10
の環境でした。
見当違いかもしれませんが、DT01.select(“日本語 is not null”)
というように2バイト系では問題あるのでしょうか。

こんにちは

今手元に環境がないので一般論ですが、内部的にはUnicodeなので問題ないのではと思います。
ご自身で試されるのが手っ取り早いかと。(実際に差異が出たのでしょうか?)

大変申し訳ございません。
原因ですが恥ずかしながら、jsonファイルを用いてシート名・ファイル名等の
値を取得しています。

今回は、jsonファイルからシート名を取得するときの
Vout_json.GetValue(“xxxxx”).Tostringの値が間違っており別のシートを読み込んで
値取得をしていました。
貴重な時間割いていただき本当に申し訳ございません。