ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part52
http://mevius.5ch.net/test/read.cgi/tech/1517052305/
探検
Excel VBA 質問スレ Part53
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/04/27(金) 19:02:38.39ID:+ocy8bIv772デフォルトの名無しさん
2018/05/09(水) 12:40:19.25ID:3+WmT7VP >>771
ソートしたか?
ソートしたか?
773デフォルトの名無しさん
2018/05/09(水) 12:43:03.63ID:QVPn4o2T 後釣りの意味がわからないならググれ
どのレスのこと言ってるのかわからないならこのスレを「釣」で検索
どのレスのこと言ってるのかわからないならこのスレを「釣」で検索
774デフォルトの名無しさん
2018/05/09(水) 12:56:39.40ID:idFoGogH >>772
検索範囲を昇順ソートしてみました。結果、、
・Cell範囲の場合: 43sec
・配列の場合: 127sec
ん? 更に延びた。さっきのはキャッシュでも効いてたのかな?
Stringの中身は "ID-枝番" 書式の文字列です。
検索範囲を昇順ソートしてみました。結果、、
・Cell範囲の場合: 43sec
・配列の場合: 127sec
ん? 更に延びた。さっきのはキャッシュでも効いてたのかな?
Stringの中身は "ID-枝番" 書式の文字列です。
775デフォルトの名無しさん
2018/05/09(水) 14:17:26.27ID:3+WmT7VP >>774
検索アルゴリズムをバイナリサーチにしてないんじゃないの?
検索アルゴリズムをバイナリサーチにしてないんじゃないの?
776デフォルトの名無しさん
2018/05/09(水) 15:17:53.88ID:eDrKJyoy 初めまして。共有保護について教えていただけませんでしょうか。
共有保護解除→マクロ処理終了→共有保護設定をする方法を作ってみましたが問題がありました。
「On Error Goto」を入れるとエラー発生→共有保護設定後、一回閉じてまた開くと「共有」が消えてしまう。
色々試したけどダメでした。(「On Error Goto」を設定しないとうまくいく。)
Sub 共有保護解除設定()
Dim x As String:x=1
On Error GoTo myError
Application.DisplayAlerts = False
Application.ScreenUpdating = False
ActiveWorkbook.UnprotectSharing Sharingpassword:="aaa"
Do: Sheets( x ).Delete: x = x + 1: Loop
myError:
ActiveWorkbook.ProtectSharing Sharingpassword:="aaa"
End Sub
共有保護解除→マクロ処理終了→共有保護設定をする方法を作ってみましたが問題がありました。
「On Error Goto」を入れるとエラー発生→共有保護設定後、一回閉じてまた開くと「共有」が消えてしまう。
色々試したけどダメでした。(「On Error Goto」を設定しないとうまくいく。)
Sub 共有保護解除設定()
Dim x As String:x=1
On Error GoTo myError
Application.DisplayAlerts = False
Application.ScreenUpdating = False
ActiveWorkbook.UnprotectSharing Sharingpassword:="aaa"
Do: Sheets( x ).Delete: x = x + 1: Loop
myError:
ActiveWorkbook.ProtectSharing Sharingpassword:="aaa"
End Sub
777デフォルトの名無しさん
2018/05/09(水) 18:14:36.75ID:iSDGF1Po778デフォルトの名無しさん
2018/05/09(水) 18:16:21.44ID:moyciPZH779デフォルトの名無しさん
2018/05/09(水) 19:46:24.05ID:wUvS2pdo >>771
VBAは基本的にシングルスレッドで動く
今のワークシート関数とかは、条件が整えばマルチスレッドで動く
なので、必ずしもVBAの方が早くなるとは限らんのだよ
Match関数がどうなってるかは知らんがな
VBAは基本的にシングルスレッドで動く
今のワークシート関数とかは、条件が整えばマルチスレッドで動く
なので、必ずしもVBAの方が早くなるとは限らんのだよ
Match関数がどうなってるかは知らんがな
780デフォルトの名無しさん
2018/05/09(水) 19:58:04.93ID:hUIK0iNE 二分探索使ってないとか初歩的なことじゃなく?
781デフォルトの名無しさん
2018/05/09(水) 20:43:17.83ID:z3LuxVKv >>771
Variant配列には何が入ってるかわからんので最適化しにくい
Variant配列には何が入ってるかわからんので最適化しにくい
782デフォルトの名無しさん
2018/05/09(水) 20:59:13.98ID:HhkRUfwj このように答えがついても反応しない質問者がよくいるからQA以外の話題で盛り上がる。
ま、興味深い話題ならいいんだけどね。
ま、興味深い話題ならいいんだけどね。
783デフォルトの名無しさん
2018/05/09(水) 21:26:33.65ID:fZf43uAK >>777
ループの中じゃなくね?
ループの中じゃなくね?
784デフォルトの名無しさん
2018/05/09(水) 21:43:05.88785デフォルトの名無しさん
2018/05/09(水) 21:52:15.61ID:idFoGogH786デフォルトの名無しさん
2018/05/09(水) 21:53:17.93ID:idFoGogH >>779
メモリに乗せれば単純に早くなるわけではないんですね。
メモリに乗せれば単純に早くなるわけではないんですね。
787デフォルトの名無しさん
2018/05/09(水) 21:55:25.27ID:w1k9kHe1 >>786
配列のマッチングはどうやって書いたの?
配列のマッチングはどうやって書いたの?
788デフォルトの名無しさん
2018/05/09(水) 21:57:44.24ID:idFoGogH >>780
Match使うときはたいてい絶対一致でつかってました。
クロスマッチになっちゃうんでしたっけ?
ここのカキコみて、以前、高速Lookupは使ったことがあるのですが、、
半分うろ覚えです。
リストを昇順ソートして、第3引数を 1 にするだけじゃ
だめですよね。変な答えが返ってきます。
Match使うときはたいてい絶対一致でつかってました。
クロスマッチになっちゃうんでしたっけ?
ここのカキコみて、以前、高速Lookupは使ったことがあるのですが、、
半分うろ覚えです。
リストを昇順ソートして、第3引数を 1 にするだけじゃ
だめですよね。変な答えが返ってきます。
789デフォルトの名無しさん
2018/05/09(水) 21:58:30.50ID:idFoGogH >>781
そうですか。型かえてみようかな?
そうですか。型かえてみようかな?
790デフォルトの名無しさん
2018/05/09(水) 22:14:27.61ID:idFoGogH >>787
いろいろ省略してますが、こんな感じです。
Dim rngFdList as Range: Set rngFdList= Range( ** 以下略(調査表) **
Dim arrFdList as Variant: arrFdList = rngFdList
For each r In Range( ** 以下略(駆動表) **
With Application
iHit = .IfError( _
.Match(r.value, arrFdList, 0), _
0 _
)
End With
(処理...)
Next
いろいろ省略してますが、こんな感じです。
Dim rngFdList as Range: Set rngFdList= Range( ** 以下略(調査表) **
Dim arrFdList as Variant: arrFdList = rngFdList
For each r In Range( ** 以下略(駆動表) **
With Application
iHit = .IfError( _
.Match(r.value, arrFdList, 0), _
0 _
)
End With
(処理...)
Next
791デフォルトの名無しさん
2018/05/09(水) 22:19:47.47ID:w1k9kHe1792デフォルトの名無しさん
2018/05/09(水) 22:23:25.94ID:idFoGogH >>779
ああ、ワークシート上の関数と比較して、じゃなく、VBA上でMatch関数を使う際に
テーブルをRange指定するか、配列指定するかで速度が変わった、という話です。
これもマルチスレッドが関係します?
たぶんMatchの使い方がまずいんだと思いますが、、
ああ、ワークシート上の関数と比較して、じゃなく、VBA上でMatch関数を使う際に
テーブルをRange指定するか、配列指定するかで速度が変わった、という話です。
これもマルチスレッドが関係します?
たぶんMatchの使い方がまずいんだと思いますが、、
793デフォルトの名無しさん
2018/05/09(水) 22:25:05.08ID:idFoGogH794デフォルトの名無しさん
2018/05/09(水) 22:28:35.61ID:iSDGF1Po795デフォルトの名無しさん
2018/05/09(水) 22:49:17.51ID:w1k9kHe1796デフォルトの名無しさん
2018/05/10(木) 01:15:35.99ID:/NGeWAX7 エクセル2016や2013等の新しいエクセルで追加された関数を、
2010等の下位バージョンで動作させるような、
ユーザー定義関数が書かれたVBAモジュールを配布しているサイトってありますか?
検索の仕方が悪いのか、自分では見つけられませんでした。
2010等の下位バージョンで動作させるような、
ユーザー定義関数が書かれたVBAモジュールを配布しているサイトってありますか?
検索の仕方が悪いのか、自分では見つけられませんでした。
797デフォルトの名無しさん
2018/05/10(木) 06:25:28.16ID:hUon7v2K798デフォルトの名無しさん
2018/05/10(木) 06:42:21.45ID:n6BTi4dI >>796
ピンポイントで〇〇の関数を2010で使いたいと言うならまだしも2013/2016の関数って一言で言われてもなぁ
ピンポイントで〇〇の関数を2010で使いたいと言うならまだしも2013/2016の関数って一言で言われてもなぁ
799デフォルトの名無しさん
2018/05/10(木) 06:45:52.61800デフォルトの名無しさん
2018/05/10(木) 08:15:00.88ID:/JKhPozC801デフォルトの名無しさん
2018/05/10(木) 10:09:42.27ID:1RQmg1q/ 答えがついてもろくに反応しない質問者がいるからQA以外の話題で盛り上がる
ってのは本当だな
ってのは本当だな
802デフォルトの名無しさん
2018/05/10(木) 10:46:30.23ID:JA/wCecl803デフォルトの名無しさん
2018/05/10(木) 13:58:29.65ID:IeALN+vJ804デフォルトの名無しさん
2018/05/10(木) 13:58:57.48ID:IeALN+vJ805デフォルトの名無しさん
2018/05/10(木) 14:05:11.32ID:IeALN+vJ806デフォルトの名無しさん
2018/05/10(木) 14:06:13.75ID:IeALN+vJ >>805
あれ、安価ミス。799への回答でした。
あれ、安価ミス。799への回答でした。
807デフォルトの名無しさん
2018/05/10(木) 15:30:36.46ID:QBpsjCo6 SQLiteでいいじゃん
808デフォルトの名無しさん
2018/05/10(木) 16:51:36.95ID:jLma9UA8809デフォルトの名無しさん
2018/05/10(木) 17:47:50.99 >>805
このへん見るに、かなり高速化できそう
まあループよりハッシュのほうがそりゃあ圧倒的に速いに決まってるけど
https://excel-ubara.com/excelvba4/EXCEL268.html
このへん見るに、かなり高速化できそう
まあループよりハッシュのほうがそりゃあ圧倒的に速いに決まってるけど
https://excel-ubara.com/excelvba4/EXCEL268.html
810デフォルトの名無しさん
2018/05/10(木) 17:54:52.83ID:7DjALtvb エクセルマクロはやりたい放題なのにセキュリティとか片腹痛いわ
811デフォルトの名無しさん
2018/05/10(木) 19:14:27.72ID:39NqoQfJ Excel VBAで悪意のあるもの作るには本人の意思が必要。
外部ソフト入れるなら意図しないものが混入する可能性がある。
これぐらい理解できないのか?
外部ソフト入れるなら意図しないものが混入する可能性がある。
これぐらい理解できないのか?
812デフォルトの名無しさん
2018/05/10(木) 19:26:28.88ID:NzRSgzkJ オプソならすっきり解決
813デフォルトの名無しさん
2018/05/10(木) 20:08:04.83ID:F9pCnCSA >>811
内部犯やチョンボを考えられないあたりが事務員さんって感じで微笑ましい
内部犯やチョンボを考えられないあたりが事務員さんって感じで微笑ましい
814デフォルトの名無しさん
2018/05/10(木) 21:33:49.65ID:n6BTi4dI >>811
怪しいサイトからダウンロードするならまだわかるけどメジャーなオプソでそんなコードが見つかったら祭りになるわ w
怪しいサイトからダウンロードするならまだわかるけどメジャーなオプソでそんなコードが見つかったら祭りになるわ w
815デフォルトの名無しさん
2018/05/10(木) 21:36:46.67ID:w2ga1e/f EXCELはWebシステムみたいに外部と繋がってないから
比較的被害は小さくて済むよね
でも以前仕事場で
内部にファイル勝手に消えたり
外部接続の無い環境でウイルスらしきものが見つかったりしたことがあって
上の人から秘密裏に頼まれてファイル監視システム作ったこともあったな
比較的被害は小さくて済むよね
でも以前仕事場で
内部にファイル勝手に消えたり
外部接続の無い環境でウイルスらしきものが見つかったりしたことがあって
上の人から秘密裏に頼まれてファイル監視システム作ったこともあったな
816デフォルトの名無しさん
2018/05/10(木) 21:39:40.05ID:39NqoQfJ817デフォルトの名無しさん
2018/05/10(木) 21:58:33.12ID:F9pCnCSA818デフォルトの名無しさん
2018/05/10(木) 22:00:56.75ID:39NqoQfJ819デフォルトの名無しさん
2018/05/10(木) 22:39:02.43ID:n6BTi4dI820デフォルトの名無しさん
2018/05/10(木) 22:49:26.50ID:qtzmRLVh >>819
オマエが判断するのかよw
オマエが判断するのかよw
821デフォルトの名無しさん
2018/05/11(金) 00:26:28.42ID:Nk9NYlAC 揚げ足の取り合いというか、マウント合戦というか
油断するとすぐ始まるw
油断するとすぐ始まるw
822デフォルトの名無しさん
2018/05/11(金) 00:34:08.57ID:DwsuJYIZ823デフォルトの名無しさん
2018/05/11(金) 01:02:06.52ID:gtt7+D13 色んなソフトがAPI公開してexcelと連動して、みたいなこと言ってるけど実際やってる人いる?
わざわざエクセルから操作する必要性が分からない
わざわざエクセルから操作する必要性が分からない
824デフォルトの名無しさん
2018/05/11(金) 04:46:34.78ID:Seo60ZfW >>823
昔、カルテサーバから翌日の輸血オーダ情報を取得して、ちょっと複雑にレイアウトしたTEPRAフォーマットに流し込んで、ハーフカットで輸血ラベルをジャンジャン印刷するのを作った記憶が。
あんまりたいした内容じゃなかった気がするけど。
それこそExcel必要?って言われるかもだけど、現場受けはよかったような。
昔、カルテサーバから翌日の輸血オーダ情報を取得して、ちょっと複雑にレイアウトしたTEPRAフォーマットに流し込んで、ハーフカットで輸血ラベルをジャンジャン印刷するのを作った記憶が。
あんまりたいした内容じゃなかった気がするけど。
それこそExcel必要?って言われるかもだけど、現場受けはよかったような。
825デフォルトの名無しさん
2018/05/11(金) 05:04:34.87ID:stSNQlqp826デフォルトの名無しさん
2018/05/11(金) 06:51:44.72ID:CplZ+xhH >>824
SPC9-APIとか使ってたなら.csvファイル経由でデータを渡すからExcel使うのはある意味自然だと思う
SPC9-APIとか使ってたなら.csvファイル経由でデータを渡すからExcel使うのはある意味自然だと思う
827デフォルトの名無しさん
2018/05/11(金) 06:52:25.93ID:CplZ+xhH828デフォルトの名無しさん
2018/05/11(金) 07:49:28.76ID:gtt7+D13829デフォルトの名無しさん
2018/05/11(金) 08:33:12.57ID:OTx54W6B PSキチガイもいなくなってひと段落といったところか
何か前他の板でもPSはキチガイ独占みたいなのを見たことがあった
それは多分PowerShellとは違うPSなんだろうけど
得てしてPSと言うのはそんなんばっかだってことだろうな
何か前他の板でもPSはキチガイ独占みたいなのを見たことがあった
それは多分PowerShellとは違うPSなんだろうけど
得てしてPSと言うのはそんなんばっかだってことだろうな
830デフォルトの名無しさん
2018/05/11(金) 08:45:45.24ID:xisUVEWN 何一つ言い返せなかったけどそれじゃ悔しいから敵が去った後に負け惜しみを言う人w
831デフォルトの名無しさん
2018/05/11(金) 08:45:45.76ID:RS6TTfPa >>829
お前も消えろ
お前も消えろ
832デフォルトの名無しさん
2018/05/11(金) 11:08:18.88ID:Pz/tQeeR シート1のA44:I44のセルを、マクロでシート2の最後列に貼り付けていきたいです。
下記のマクロだと、シート1のA44のセルをシート2の最後列のAのセルにのみ、コピーするだけになってしまいます。
どう変更すればいいのか、よかったら教えて頂きたいです。
よろしくお願いします。
Sub テスト()
Dim LastRow As Long
With Worksheets("シート2")
LastRow = Worksheets("シート2").Range("A"&Rows.Count).End(xlUp).Row + 1
Range("A"&LastRow).Value=Worksheets("シート1").Range("A44:I44").Value
End With
End Sub
下記のマクロだと、シート1のA44のセルをシート2の最後列のAのセルにのみ、コピーするだけになってしまいます。
どう変更すればいいのか、よかったら教えて頂きたいです。
よろしくお願いします。
Sub テスト()
Dim LastRow As Long
With Worksheets("シート2")
LastRow = Worksheets("シート2").Range("A"&Rows.Count).End(xlUp).Row + 1
Range("A"&LastRow).Value=Worksheets("シート1").Range("A44:I44").Value
End With
End Sub
833デフォルトの名無しさん
2018/05/11(金) 11:49:30.00ID:WIuYiP4/ VBA エキスパート スタンダードより難しい資格ってありますか?
834デフォルトの名無しさん
2018/05/11(金) 12:16:30.12ID:hascnQXs >>833
えんべでっどすぺしゃりすと
えんべでっどすぺしゃりすと
835デフォルトの名無しさん
2018/05/11(金) 12:17:44.23ID:Pz/tQeeR836デフォルトの名無しさん
2018/05/11(金) 12:41:09.45ID:HsLVJmEf >>834
VBAのスレで聞いてるんだからVBAの資格ってことだってわかるだろw
VBAのスレで聞いてるんだからVBAの資格ってことだってわかるだろw
837デフォルトの名無しさん
2018/05/11(金) 13:06:15.00ID:udjF1/Ux >>836
最近はpowershellの話題も取り扱うようになったからそっちの資格かもしれない
最近はpowershellの話題も取り扱うようになったからそっちの資格かもしれない
838デフォルトの名無しさん
2018/05/11(金) 19:31:54.26ID:cdAz752k 入力ヴァリデーションのやり方を教えてください
表形式のデータで1行1エンティティです
入力長さ、最小最大値、正規表現パターンなど基本的なカラムごとに独立したヴァリデーション
開始日終了日の順序などのエンティティ内の複数カラムにまたがるヴァリデーション
REST APIでサーバーに問い合わせる非同期ヴァリデーション
集計値の最大値やリレーションの存在確認など表全体のヴァリデーション
を行いたいです
入力が止まるとUXが悪化するのでエラーメッセージはメッセージボックスで表示したくありません
一定時間で消えるかフォーカスすると消滅する吹き出しのようなコントロールが理想です
これらを可能な限り宣言的にかつGUIからのチマチマとした面倒な設定は無しで実装したいです
REST APIや表全体のヴァリデーションの実体はUIと独立したCOMコンポーネントが行うので後はUIと紐付けるだけです
表形式のデータで1行1エンティティです
入力長さ、最小最大値、正規表現パターンなど基本的なカラムごとに独立したヴァリデーション
開始日終了日の順序などのエンティティ内の複数カラムにまたがるヴァリデーション
REST APIでサーバーに問い合わせる非同期ヴァリデーション
集計値の最大値やリレーションの存在確認など表全体のヴァリデーション
を行いたいです
入力が止まるとUXが悪化するのでエラーメッセージはメッセージボックスで表示したくありません
一定時間で消えるかフォーカスすると消滅する吹き出しのようなコントロールが理想です
これらを可能な限り宣言的にかつGUIからのチマチマとした面倒な設定は無しで実装したいです
REST APIや表全体のヴァリデーションの実体はUIと独立したCOMコンポーネントが行うので後はUIと紐付けるだけです
839デフォルトの名無しさん
2018/05/11(金) 20:13:41.96ID:HsLVJmEf >>838
文章だけで聞くレベルじゃないと思う
文章だけで聞くレベルじゃないと思う
840デフォルトの名無しさん
2018/05/11(金) 20:33:45.50ID:VErxDUwc >>839
C#erか、Rubierか、PSerからの宿題じゃないの?
C#erか、Rubierか、PSerからの宿題じゃないの?
841デフォルトの名無しさん
2018/05/11(金) 21:41:23.33ID:4Lj210NT ガチガチに入力規制するなら素直にAccess使おうよ…
842デフォルトの名無しさん
2018/05/11(金) 21:43:15.64ID:OTx54W6B843デフォルトの名無しさん
2018/05/12(土) 00:56:13.10ID:0dcq7Vjr 駆け出しの自分には質問内容すらさっぱりなんだが
このスレの住人はこの話の内容が理解できるくらいのレベルなの?
久しぶりに日本語が分からないって思ったわ
このスレの住人はこの話の内容が理解できるくらいのレベルなの?
久しぶりに日本語が分からないって思ったわ
844デフォルトの名無しさん
2018/05/12(土) 01:10:53.14ID:tqwvTn43 >>838
入力したそばからバリデーションを走らせたいの?
入力したそばからバリデーションを走らせたいの?
845デフォルトの名無しさん
2018/05/12(土) 04:58:53.18ID:F7D6rAHG >>843
データベースではよくあるけど間違ってもExcelでやる事じゃないから気にしなくていいぞ
データベースではよくあるけど間違ってもExcelでやる事じゃないから気にしなくていいぞ
846デフォルトの名無しさん
2018/05/12(土) 07:55:43.25ID:hwxaPbIq 無料の「Rails チュートリアル」で勉強すれば?
例えば、Rails で一般的な入力バリデ(validation)は、
空ではない
presence: true
1〜50文字
length: { in: 1..50 }
整数のみ
:only_integer
例えば、Rails で一般的な入力バリデ(validation)は、
空ではない
presence: true
1〜50文字
length: { in: 1..50 }
整数のみ
:only_integer
847デフォルトの名無しさん
2018/05/12(土) 08:27:40.09ID:iloBjJ0s >>843
Webアプリケーションなら典型的と言っていい
Webアプリケーションなら典型的と言っていい
848デフォルトの名無しさん
2018/05/12(土) 09:48:01.99ID:tqwvTn43849デフォルトの名無しさん
2018/05/12(土) 10:58:14.77ID:tJgrjt+6 凄いよ
MVVMやってる横で
MVCで頑張りましょうって言われた感じ
流石PSはキチガイ独占だNE
MVVMやってる横で
MVCで頑張りましょうって言われた感じ
流石PSはキチガイ独占だNE
850デフォルトの名無しさん
2018/05/12(土) 11:27:49.88ID:P5sx5scC >>849
どこにレスしてんの?
どこにレスしてんの?
851デフォルトの名無しさん
2018/05/12(土) 11:31:03.75ID:tqwvTn43 >>849
MVVMってなに?(wikipediaのページを読みながら)
MVVMってなに?(wikipediaのページを読みながら)
852デフォルトの名無しさん
2018/05/12(土) 11:43:33.47ID:g9HMZZiK >>851
京急で採用してるインバーターの事やで(大雑把なボケ)
京急で採用してるインバーターの事やで(大雑把なボケ)
853デフォルトの名無しさん
2018/05/12(土) 19:33:17.11ID:iloBjJ0s VBAにはMVVMもMVCもない
でも事務員さんのツールだからそれでいい
でも事務員さんのツールだからそれでいい
854デフォルトの名無しさん
2018/05/12(土) 19:47:10.61ID:tqwvTn43 事務員て何?
システム開発の専門家以外のホワイトカラーだったら全部事務員でOK?
システム開発の専門家以外のホワイトカラーだったら全部事務員でOK?
855デフォルトの名無しさん
2018/05/12(土) 19:50:29.63ID:anlHVJo4 IT、システムが専門じゃない人でいいんじゃないの?
856デフォルトの名無しさん
2018/05/12(土) 21:19:03.46 Excelとパワポしか触ってないIT元請け企業の社員とかね
857デフォルトの名無しさん
2018/05/13(日) 00:43:57.24ID:i7PAGBqe 過疎ってんなぁ
858デフォルトの名無しさん
2018/05/13(日) 09:38:43.13ID:Mp8iXUe3 クソな話題文句の言い合いでただ伸びているよりはマシ
859デフォルトの名無しさん
2018/05/13(日) 09:42:02.16ID:i7PAGBqe クソ or 過疎ならもうスレ要らなくねえか?
860デフォルトの名無しさん
2018/05/13(日) 10:08:12.60ID:V2dj1TCI 土日くらい休めよ
861デフォルトの名無しさん
2018/05/13(日) 10:55:04.93ID:hA5qejl9 今までC++とかの酷い奴も来たけど
今回のPSキチガイは群を抜いて酷かったな
もう二度と現れないで欲しいよね
今回のPSキチガイは群を抜いて酷かったな
もう二度と現れないで欲しいよね
862デフォルトの名無しさん
2018/05/13(日) 10:55:35.20ID:wyHt0Mjp 二分探索、そしてMatchでこれを活用する方法、理解できました。
・要:調査表の検索キーソート。
・検索キーが数値を含む文字列なので桁揃えする必要あり。
・Matchでは完全一致での二分探索はできないので、戻値と元値の比較が必要。
この編がポイントでしょうか。
目標10秒以内を目指し、皆さんのアドバイスを元に順に試しましたが、結局この二分探索
のすさまじい結果に驚き、辞書までは試しませんでした。多分これも早いんだろうけど、、
(つづく)
・要:調査表の検索キーソート。
・検索キーが数値を含む文字列なので桁揃えする必要あり。
・Matchでは完全一致での二分探索はできないので、戻値と元値の比較が必要。
この編がポイントでしょうか。
目標10秒以内を目指し、皆さんのアドバイスを元に順に試しましたが、結局この二分探索
のすさまじい結果に驚き、辞書までは試しませんでした。多分これも早いんだろうけど、、
(つづく)
863デフォルトの名無しさん
2018/05/13(日) 10:55:56.66ID:wyHt0Mjp >>862
(つづき)
少し条件を変えて、調査表(1.4万) x 駆動表(1万)で試しました。
[線形探索]
・Match線形探索/調査票(Range) ... 22.9 Sec
・Match線形探索/調査票(Array) ... 79.12 Sec
[For入れ子]
・調査票、駆動表ともにArrayなげこみ ... 53.10 Sec
For2重Loop。発見時、Exit Forで次へ。
[二分探索](調査票はSort済)
・Match二分探索/調査票(Range) ... 0.42 Sec
・Match二分探索/調査票(Array) ... 117.24 Sec
(つづく)
(つづき)
少し条件を変えて、調査表(1.4万) x 駆動表(1万)で試しました。
[線形探索]
・Match線形探索/調査票(Range) ... 22.9 Sec
・Match線形探索/調査票(Array) ... 79.12 Sec
[For入れ子]
・調査票、駆動表ともにArrayなげこみ ... 53.10 Sec
For2重Loop。発見時、Exit Forで次へ。
[二分探索](調査票はSort済)
・Match二分探索/調査票(Range) ... 0.42 Sec
・Match二分探索/調査票(Array) ... 117.24 Sec
(つづく)
864デフォルトの名無しさん
2018/05/13(日) 10:56:21.29ID:wyHt0Mjp >>862
(つづき)
結果、RangeObjectへのMatch二分探索が最強でした。
Arrayに乗せると、どんどん結果が悪くなるのが意味不明ですが、、
Match部分に時間がかかっているのは明らかでしたが、これを二分探索にすることで
1万回のMatchが 0.4 Secで終わるというのはすさまじいですね。
最終的に、検索キーの供給とマッチング、そのあとのSQL処理まで含めて
約100 Secかかっていたのが、0.8 Secで差分処理出来るようになりました。
みなさん、アドバイスいただきありがとうございました。
(つづき)
結果、RangeObjectへのMatch二分探索が最強でした。
Arrayに乗せると、どんどん結果が悪くなるのが意味不明ですが、、
Match部分に時間がかかっているのは明らかでしたが、これを二分探索にすることで
1万回のMatchが 0.4 Secで終わるというのはすさまじいですね。
最終的に、検索キーの供給とマッチング、そのあとのSQL処理まで含めて
約100 Secかかっていたのが、0.8 Secで差分処理出来るようになりました。
みなさん、アドバイスいただきありがとうございました。
865デフォルトの名無しさん
2018/05/13(日) 11:03:24.93ID:i7PAGBqe866デフォルトの名無しさん
2018/05/13(日) 13:26:19.68ID:LATlOC/3867デフォルトの名無しさん
2018/05/13(日) 15:10:20.32ID:uLIKOFiX868デフォルトの名無しさん
2018/05/13(日) 15:44:53.98ID:wyHt0Mjp >>867
22 Sec と 0.4 Secを誤差と? すごい感覚の持ち主ですね。
22 Sec と 0.4 Secを誤差と? すごい感覚の持ち主ですね。
869デフォルトの名無しさん
2018/05/13(日) 15:48:29.20ID:wyHt0Mjp >>866
両テーブルをArrayに乗せてForで回して単純比較したのですが、50 Secほどかかってしまったのです。
Matchを使わない場合、どう記述すればよいかわからず。
ヒントをいただけますか? もっと効率がよい方法があれば試してみたいです。
両テーブルをArrayに乗せてForで回して単純比較したのですが、50 Secほどかかってしまったのです。
Matchを使わない場合、どう記述すればよいかわからず。
ヒントをいただけますか? もっと効率がよい方法があれば試してみたいです。
870デフォルトの名無しさん
2018/05/13(日) 16:14:11.00ID:+vKBH4Jv こんな程度のどうでもよい事の効率を上げるより仕事全体の効率を上げる努力をしなさいって社長が言ってたよ
871デフォルトの名無しさん
2018/05/13(日) 16:20:34.22ID:uLIKOFiX >>868
お前のプログラムがおかしいだけだろ
お前のプログラムがおかしいだけだろ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 【テレビ】25年ぶり復活「炎のチャレンジャー」南原清隆&菊池風磨がMC 懐かし「電流イライラ棒」も [湛然★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 【訃報】声優・西村知道さん死去 「SLAM DUNK」安西先生役 9月に体調不良のため一時休業 [少考さん★]
- 女って金とイケメンしか見てないよな
- 【閲覧注意】ちずちんな
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 高市総理、睡眠時間30分😢
- フェリーの魅力を語ろう。
- 【仁藤悲報】Colaboさん、東京都の公金を月7万円の「整体治療費」に使っていたことが判明してしまう!!!! [535458756]
