いつもお世話になっております。
あいまい検索について質問させていただきます。
会社名の表記について下記のように3パターンで管理しています。
・株式会社AAaa
・AAaa
・AA
現在「AAaa=company」という変数をcsvから取得しています。
この変数companyを用いて「AA」というPC上にあるフォルダを検索したいのですが可能でしょうか?
ご教示いただけますと幸いです。
いつもお世話になっております。
あいまい検索について質問させていただきます。
会社名の表記について下記のように3パターンで管理しています。
・株式会社AAaa
・AAaa
・AA
現在「AAaa=company」という変数をcsvから取得しています。
この変数companyを用いて「AA」というPC上にあるフォルダを検索したいのですが可能でしょうか?
ご教示いただけますと幸いです。
こんにちは
検索条件(ヒットする条件)をもう少し明確にしないと、できるともできないとも言えないですね。
Yoichiさん
こんにちは。
いつもありがとうございます。
たとえば下記3表現で管理しています。
・UiPath株式会社
・UiPath
・Ui
companyに入っている会社名は「UiPath」。
PCにあるフォルダ名は「Ui」。
こちらでよろしいでしょうか?
これは先頭から2文字が一致したら、マッチと判断するということでしょうか?
Yoichiさん
そうですね。
基本的に先頭2文字と考えております。
(会社名によっては略称できないのもあるのでその場合は異なりますが・・)
先頭2文字を抽出するには例えばString.SubStringを使います。
company.Substring(0,2)=folderName
Yoichiさん
ありがとうございます。
たびたび申し訳ございません。
いただいた式で
略称で検索することはできたのですが、
同様の式で略称がない(例えば株式会社ユーアイの場合はユーアイでフォルダを作成してます)会社のファルダを探すことはできないみたいですが同時の式に盛り込むことは可能でしょうか?
今は下記のような式です。
user_path & "\AAAAA\BBBBB\CCCCC\DDDDD" & company.Substring(0,2)
できないことはないですが、単純に2つの式を使った方がメンテナンスするうえでよいのではと思いますがいかがでしょうか?
単純に株式会社を消したいだけなら company.Replace("株式会社","")
で可能です。
Yoichiさん
何度もすみません。
理解できずすみません。。
可能であれば、companyの文字列の「最低2文字一致していれば」検索してくれるような式ができればうれしいのですが・・・
略称(company文字列):フォルダ名
UiPath:Ui
ユーアイ:ユーアイ
このように略称とフォルダ名が一致するパターンもあるので
どちらも検索できるようにしたいです。
※ちなみにcompany変数の値には株式会社の文字列ははいってません
こんにちは
先頭からということであれば、前述した
company.Substring(0,2)=folderName
がそれに該当しますが....
あるいは
company.Substring(0,2)=folderName.Substring(0,2)
でしょうか
Yoichiさん
ありがとうございます。
いただきました式で行いますと、
UiPath(company):Ui(フォルダ名):OK
ユーアイ(company):ユーアイ(フォルダ名):エラー
の結果になってしまいます。
【代入】company=currentitem
【代入】Excelファイル名=日付 & company & “様.xlsx”
【代入】Excel保存先=user_path & “\AA\BB\CC\DD” & company.Substring(0,2)
と設置しております。
こちらいかがでしょうか?
Yoichiさん
ありがとうございます。
あたらしく代入のアクティビティを設置するということでしょうか?
company.Substring(0,2)=Excel保存先.Substring(0,2)
こちらを設置してみましたが、コンパイルエラーが発生してしまいました。
理解不足で申し訳ございません。
今どのようにフォルダを検索されていますでしょうか?
スクリーンショット共有可能でしょうか?
このようなケースの検索は複数結果が返ってくること前提になります。
アクティビティ(繰り返しフォルダ内のフォルダ)を使う場合は例えば以下になります。
式で行うなら以下になります。
folders = System.IO.Directory.GetDirectories("c:\temp",company.Substring(0,2)+"*")
foldersは文字列配列です。
結果が必ず一つなら、folders.First で文字列として取得できます。
前者後者共通ですが、複数の場合はどれを使用するかの判断が必要です。
Yoichiさん
いつもありがとうございます。
すみません。
私の理解不足なのですが、
アクティビティで行う場合、
こういったことではないのでしょうか・・・
また、式でも試してみましたが、
どこに設置したらいいのかわからずエラーになってしまいます。
何かエラーが出ていますでしょうか?エラーの内容を共有いただけますか?
また、ファイルをコピーのコピー先に
現在↓の式をいれており、
excel_folder_path & "" & excel_file_name
excel_folder_pathこの部分にいただいた式の変数folderを入れると
folderの方がString()、excel_file_nameはStringで一致しないのでエラーになります。