HohoPapa の回答履歴
- ホームページからISBNコードを抜き出し検索したい
ブックオフオンラインYahoo!店の検索結果の書籍の個別ページ 例えば、 中古 サウスポー・キラー 宝島社文庫/水原秀策【著】 JANコード/ISBNコード:9784796656719 レビューを投稿する 価格 200円 (税込) https://store.shopping.yahoo.co.jp/bookoffonline/0015509916.html からISBNコードの番号 9784796656719 を抜き出してそのコードをAmazonで検索するには どうすればいいですか? 一番簡単に実行するにはどうすればいいでしょうか? ブックオフオンラインYahoo!店で沢山本を検索して検索した書籍のISBNコードを Amazonで検索することが多いので、 どうすれば、簡単出来るかしりたいです。 アドバイス頂けると幸いです よろしくおねがいします。(・´з`・)
- ベストアンサー
- その他(プログラミング・開発)
- tasukete2018
- 回答数7
- 時間の計算結果切り上げについて
セルZ10~Z20までに下記の関数を入力しております。 *下記関数の「H10」はH20へとセルZにあわせて変更します。 =IF(F4=0,"",IF(OR(H10-F4<=0,H10=""),"",H10-F4)) 上記の合計結果をセルZ21(「SUM(Z10:Z20)」関数入力)に表示しています。 次に セルU10~U20まで時間を入力して 合計結果をセルU21(「SUM(U10:U20)」関数入力)に表示できるようにしてます。 次に セルZ25(「CEILING(SUM(U21:Z21),"0:30"」関数入力)に セルU21とセルZ21の合計を30分切上げで表示しております。 セルZ25の表示結果なのですが、セルU21に数値の表示がない条件で セルZ10に0:30 セルZ11に0:30 の場合はセルZ25に「1:00」と表示されるのですが、 セルZ10に0:30 セルZ11に0:30 セルZ12に0:30 の場合はセルZ25に「2:00」と表示されます セルZ10に0:30 セルZ11に0:30 セルZ12に0:30 セルZ13に0:30 の場合はセルZ25に「2:30」と表示されます 以下、同じ+30分となります。 セルZ25に正常に30分単位で表示される方法または修正のご教授をお願いいたします。 (例1:セルZ21の合計が1:30の場合セルZ25にも「1:30」で表示 ) (例2:セルZ21の合計が2:00の場合セルZ25にも「2:00」で表示 ) *30分単位の入力での表示結果となりますが、時間の合計が1:29の場合は1:30分表示となり、1:31分の場合は2:00表示となり正常に表示されます。 *すべての対象セルの書式設定は『ユーザー定義 [h]:mm』としております。 *セルF4に数値の入力がない条件では、セルZ10~Z20には数値を表示できなようにしております。 *「セルU10~U20まで時間を入力して合計結果をセルU21(「SUM(U10:U20)」関数入力)に表示してます。」を削除して、セルZ25の関数を「CEILING(SUM(Z21),"0:30"」関数入力を変更しても同じ結果となります。 何卒よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- tktk1980
- 回答数3
- ホームページからISBNコードを抜き出し検索したい
ブックオフオンラインYahoo!店の検索結果の書籍の個別ページ 例えば、 中古 サウスポー・キラー 宝島社文庫/水原秀策【著】 JANコード/ISBNコード:9784796656719 レビューを投稿する 価格 200円 (税込) https://store.shopping.yahoo.co.jp/bookoffonline/0015509916.html からISBNコードの番号 9784796656719 を抜き出してそのコードをAmazonで検索するには どうすればいいですか? 一番簡単に実行するにはどうすればいいでしょうか? ブックオフオンラインYahoo!店で沢山本を検索して検索した書籍のISBNコードを Amazonで検索することが多いので、 どうすれば、簡単出来るかしりたいです。 アドバイス頂けると幸いです よろしくおねがいします。(・´з`・)
- ベストアンサー
- その他(プログラミング・開発)
- tasukete2018
- 回答数7
- 時間の計算結果切り上げについて
セルZ10~Z20までに下記の関数を入力しております。 *下記関数の「H10」はH20へとセルZにあわせて変更します。 =IF(F4=0,"",IF(OR(H10-F4<=0,H10=""),"",H10-F4)) 上記の合計結果をセルZ21(「SUM(Z10:Z20)」関数入力)に表示しています。 次に セルU10~U20まで時間を入力して 合計結果をセルU21(「SUM(U10:U20)」関数入力)に表示できるようにしてます。 次に セルZ25(「CEILING(SUM(U21:Z21),"0:30"」関数入力)に セルU21とセルZ21の合計を30分切上げで表示しております。 セルZ25の表示結果なのですが、セルU21に数値の表示がない条件で セルZ10に0:30 セルZ11に0:30 の場合はセルZ25に「1:00」と表示されるのですが、 セルZ10に0:30 セルZ11に0:30 セルZ12に0:30 の場合はセルZ25に「2:00」と表示されます セルZ10に0:30 セルZ11に0:30 セルZ12に0:30 セルZ13に0:30 の場合はセルZ25に「2:30」と表示されます 以下、同じ+30分となります。 セルZ25に正常に30分単位で表示される方法または修正のご教授をお願いいたします。 (例1:セルZ21の合計が1:30の場合セルZ25にも「1:30」で表示 ) (例2:セルZ21の合計が2:00の場合セルZ25にも「2:00」で表示 ) *30分単位の入力での表示結果となりますが、時間の合計が1:29の場合は1:30分表示となり、1:31分の場合は2:00表示となり正常に表示されます。 *すべての対象セルの書式設定は『ユーザー定義 [h]:mm』としております。 *セルF4に数値の入力がない条件では、セルZ10~Z20には数値を表示できなようにしております。 *「セルU10~U20まで時間を入力して合計結果をセルU21(「SUM(U10:U20)」関数入力)に表示してます。」を削除して、セルZ25の関数を「CEILING(SUM(Z21),"0:30"」関数入力を変更しても同じ結果となります。 何卒よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- tktk1980
- 回答数3
- ホームページからISBNコードを抜き出し検索したい
ブックオフオンラインYahoo!店の検索結果の書籍の個別ページ 例えば、 中古 サウスポー・キラー 宝島社文庫/水原秀策【著】 JANコード/ISBNコード:9784796656719 レビューを投稿する 価格 200円 (税込) https://store.shopping.yahoo.co.jp/bookoffonline/0015509916.html からISBNコードの番号 9784796656719 を抜き出してそのコードをAmazonで検索するには どうすればいいですか? 一番簡単に実行するにはどうすればいいでしょうか? ブックオフオンラインYahoo!店で沢山本を検索して検索した書籍のISBNコードを Amazonで検索することが多いので、 どうすれば、簡単出来るかしりたいです。 アドバイス頂けると幸いです よろしくおねがいします。(・´з`・)
- ベストアンサー
- その他(プログラミング・開発)
- tasukete2018
- 回答数7
- 時間の計算結果切り上げについて
セルZ10~Z20までに下記の関数を入力しております。 *下記関数の「H10」はH20へとセルZにあわせて変更します。 =IF(F4=0,"",IF(OR(H10-F4<=0,H10=""),"",H10-F4)) 上記の合計結果をセルZ21(「SUM(Z10:Z20)」関数入力)に表示しています。 次に セルU10~U20まで時間を入力して 合計結果をセルU21(「SUM(U10:U20)」関数入力)に表示できるようにしてます。 次に セルZ25(「CEILING(SUM(U21:Z21),"0:30"」関数入力)に セルU21とセルZ21の合計を30分切上げで表示しております。 セルZ25の表示結果なのですが、セルU21に数値の表示がない条件で セルZ10に0:30 セルZ11に0:30 の場合はセルZ25に「1:00」と表示されるのですが、 セルZ10に0:30 セルZ11に0:30 セルZ12に0:30 の場合はセルZ25に「2:00」と表示されます セルZ10に0:30 セルZ11に0:30 セルZ12に0:30 セルZ13に0:30 の場合はセルZ25に「2:30」と表示されます 以下、同じ+30分となります。 セルZ25に正常に30分単位で表示される方法または修正のご教授をお願いいたします。 (例1:セルZ21の合計が1:30の場合セルZ25にも「1:30」で表示 ) (例2:セルZ21の合計が2:00の場合セルZ25にも「2:00」で表示 ) *30分単位の入力での表示結果となりますが、時間の合計が1:29の場合は1:30分表示となり、1:31分の場合は2:00表示となり正常に表示されます。 *すべての対象セルの書式設定は『ユーザー定義 [h]:mm』としております。 *セルF4に数値の入力がない条件では、セルZ10~Z20には数値を表示できなようにしております。 *「セルU10~U20まで時間を入力して合計結果をセルU21(「SUM(U10:U20)」関数入力)に表示してます。」を削除して、セルZ25の関数を「CEILING(SUM(Z21),"0:30"」関数入力を変更しても同じ結果となります。 何卒よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- tktk1980
- 回答数3
- ホームページからISBNコードを抜き出し検索したい
ブックオフオンラインYahoo!店の検索結果の書籍の個別ページ 例えば、 中古 サウスポー・キラー 宝島社文庫/水原秀策【著】 JANコード/ISBNコード:9784796656719 レビューを投稿する 価格 200円 (税込) https://store.shopping.yahoo.co.jp/bookoffonline/0015509916.html からISBNコードの番号 9784796656719 を抜き出してそのコードをAmazonで検索するには どうすればいいですか? 一番簡単に実行するにはどうすればいいでしょうか? ブックオフオンラインYahoo!店で沢山本を検索して検索した書籍のISBNコードを Amazonで検索することが多いので、 どうすれば、簡単出来るかしりたいです。 アドバイス頂けると幸いです よろしくおねがいします。(・´з`・)
- ベストアンサー
- その他(プログラミング・開発)
- tasukete2018
- 回答数7
- 2つの群の2値の平均値が最小となる組み合わせを
いつもお世話になっております。 少しややこしい内容なので説明が分かりにくくなってしまうと思うので忖度に期待して質問させていただきます。 図のように1群、2群にA、BのデータがNo1から順に最大30個(2群は4~15個)のデータの 1)A(1)列の2値の平均値と2群のA(2)列の2値の平均値の差が最小になる2つを見つける。 2)同様にB(1)列の2値の平均値とB(2)列の2値の平均値の差が最小になる組み合わせを見つける。 3)1)と2)の合計が最小になる組み合わせのデータNoを知りたいのです。 例えばイメージ(入力数値は無視)として1群からデータNo4とNo8を選んだ時に、2群のNo20とNo27を組み合わせるとA、Bの2値の平均値の誤差が最小値になる組み合わせを知りたいのです。 現在は差の絶対値を行列数式でA(1)のデータNo1とA(2)のNo16からNo30までの総当たりで、同様にB1についても総当たりで求めて、両方の差の和の一番小さくなるケースを探しているのですが精度(やり方)が悪いのでお知恵拝借したく、わかりにくくお手数ですが宜しくお願いします。
- ベストアンサー
- Excel(エクセル)
- akira0723
- 回答数12
- 2つの群の2値の平均値が最小となる組み合わせを
いつもお世話になっております。 少しややこしい内容なので説明が分かりにくくなってしまうと思うので忖度に期待して質問させていただきます。 図のように1群、2群にA、BのデータがNo1から順に最大30個(2群は4~15個)のデータの 1)A(1)列の2値の平均値と2群のA(2)列の2値の平均値の差が最小になる2つを見つける。 2)同様にB(1)列の2値の平均値とB(2)列の2値の平均値の差が最小になる組み合わせを見つける。 3)1)と2)の合計が最小になる組み合わせのデータNoを知りたいのです。 例えばイメージ(入力数値は無視)として1群からデータNo4とNo8を選んだ時に、2群のNo20とNo27を組み合わせるとA、Bの2値の平均値の誤差が最小値になる組み合わせを知りたいのです。 現在は差の絶対値を行列数式でA(1)のデータNo1とA(2)のNo16からNo30までの総当たりで、同様にB1についても総当たりで求めて、両方の差の和の一番小さくなるケースを探しているのですが精度(やり方)が悪いのでお知恵拝借したく、わかりにくくお手数ですが宜しくお願いします。
- ベストアンサー
- Excel(エクセル)
- akira0723
- 回答数12
- VBAでフォルダの中の1個のファイルを表示したい
Windows10、Microsoft 365使用の超初心者です。 毎月1回、一個だけファイルを、フォルダ「計算表」に手動で入れています。 入れるのは、翌月のファイルで、A年B月計算表完成.xlsです。 いま、フォルダ「計算表」に、2年8月計算表完成.xlsが,1個 いれてあるので、エラーが発生します。 毎月1回のエラーを回避するため、何か良い方法を知りたいです。 よろしくお願いします。 Sub 最新計算書ひらく() Dim wb As Workbook Dim ws As Worksheet ChDrive ThisWorkbook.Path ChDir ThisWorkbook.Path On Error Resume Next Set wb = Workbooks("2年7月計算表完成.xls") If err.Number <> 0 Then Set wb = Workbooks.Open(ThisWorkbook.Path & "\計算表\2年7月計算表完成.xls") err.Clear End If Set ws = wb.Worksheets("集計") On Error GoTo 0 wb.Activate ws.Select・・・・・・ここでエラーになる End Sub
- ベストアンサー
- Visual Basic
- aitaine
- 回答数3
- VBAでフォルダの中の1個のファイルを表示したい
Windows10、Microsoft 365使用の超初心者です。 毎月1回、一個だけファイルを、フォルダ「計算表」に手動で入れています。 入れるのは、翌月のファイルで、A年B月計算表完成.xlsです。 いま、フォルダ「計算表」に、2年8月計算表完成.xlsが,1個 いれてあるので、エラーが発生します。 毎月1回のエラーを回避するため、何か良い方法を知りたいです。 よろしくお願いします。 Sub 最新計算書ひらく() Dim wb As Workbook Dim ws As Worksheet ChDrive ThisWorkbook.Path ChDir ThisWorkbook.Path On Error Resume Next Set wb = Workbooks("2年7月計算表完成.xls") If err.Number <> 0 Then Set wb = Workbooks.Open(ThisWorkbook.Path & "\計算表\2年7月計算表完成.xls") err.Clear End If Set ws = wb.Worksheets("集計") On Error GoTo 0 wb.Activate ws.Select・・・・・・ここでエラーになる End Sub
- ベストアンサー
- Visual Basic
- aitaine
- 回答数3
- VBAで指定時刻まで一時停止するコード
VBA初心者です。 業務で使用するため、VBAで指定時刻まで一時停止するコードを作りたいのですが、うまくいきません。 設定したい条件は (1)当日の午前9時から実行 (2)記述しているコードの実行が終了したら、当日の午後6時まで一時停止 (このとき他の業務でExcelを使用するので、Excelの動作を止めないためにDoEventsと記述してOSに制御を移しています) (3)当日午後6時になったら、コードの実行を再開する 以上です。 今のところ、午後6時まで動作が停止せず、すぐに午後6時以降に実行したいコードが実行されてしまいます。 どういうコードを記述すればいいでしょうか?教えてください。 ------------------------------------------------------------------------------------------------------------------ ~(中略)~ Dim PauseTime As Single Dim Start As Variant Dim Finish As Date Dim TotalTime As Variant Start = Now() Do PauseTime = Start + TimeValue("08:59:20") DoEvents Loop While Now() < Finish Finish = TimeValue("18:00:03") ~(中略)~ ------------------------------------------------------------------------------------------------------------------
- ベストアンサー
- Visual Basic
- noyyon900
- 回答数5
- VBA where複数条件
Oracle12c office2016 oracleのデータをEXCELのマクロで更新するのにシリアル等の1つしかない条件だと次の内容で更新できます。マクロは抜粋です。 C列(ActiveSheet.Cells(row, 3))の内容がシリアルだと、下記でkomoku1,komoku2が更新可能。 With cmd .CommandText = "UPDATE table1" & " set komoku1 = '" & ActiveSheet.Cells(row, 6) & "' " & ", komoku2 = '" & ActiveSheet.Cells(row, 58) & "' WHERE " & " joken1 = '" & ActiveSheet.Cells(row, 3) & "'" .CommandType = adCmdUnknown .Execute End With 違うテーブルで条件を2つにして設定する場合 ActiveSheet.Cells(row, 3) と ActiveSheet.Cells(row, 4)のAND条件で設定する場合は、どの様な書式になるか教えていただきたく。 ActiveSheet.Cells(row, 3) と ActiveSheet.Cells(row, 4)は両方とも文字列です
- 締切済み
- Excel(エクセル)
- 3620313
- 回答数4
- Excel2007で特殊なカウントをしたいのですが
久々お世話になります。 Excel2007で特殊なカウントがしたいのですができません。そこでご助力頂ければ幸いです。内容は以下に説明します。 範囲D6 : G8 の3×4の1マスずつにアイウエオカキクケコのいずれかがランダムに入ります。 この3×4を1範囲とし、(D6 :G20)に合計5範囲あります。 他の4範囲(D9:G11)、(D12:G14)、(D15:G17)、(D18:G20)も上の様となります。 次に、K10にア~コを1つずつ順に入れると入れた値に応じて範囲D6 : G20 にある同値が黄色く塗りつぶされるという形になっています。 ここからが私にとって特殊カウントであり難題になります。 K10の値に応じて黄色くなった値を特殊な形でカウントします。 そのルールはこうなります。 K10の値に応じて、3×4の1範囲内に、上下と斜めで重複したものを1個と捉え、水平に重複しても1個と捉えない。 そして、例え3行内に、上下斜めに重複する形が複数確認できたとしたも1個としてカウントします。 5範囲ありますので最大合計値は5個になります。最小合計値は0ですが、空白(空白でなくてもOK )にします。 次に、その合計値を、範囲(AA10:AJ10)に左から順にア~コと付ってますのでその下の範囲(AA11:AJ11)に、0無し(0入りでもOK)で入れたいです。新しく特殊カウントされるとその下の行へ下の行へと合計値が射出される形を希望します。 それと併せて、範囲(AA11:AJ11)の合計数値が3個以上のア~コの記号はその行数の(M11:R11)に、2個だけの記号はその行数の(S11:X11)にと、左りから入れる形にして、特殊カウントがされる度に併せて、下から下にと、反映する形を希望します。 ご協力お願い致します。
- ベストアンサー
- Excel(エクセル)
- 961awaawa
- 回答数24
- VBA where複数条件
Oracle12c office2016 oracleのデータをEXCELのマクロで更新するのにシリアル等の1つしかない条件だと次の内容で更新できます。マクロは抜粋です。 C列(ActiveSheet.Cells(row, 3))の内容がシリアルだと、下記でkomoku1,komoku2が更新可能。 With cmd .CommandText = "UPDATE table1" & " set komoku1 = '" & ActiveSheet.Cells(row, 6) & "' " & ", komoku2 = '" & ActiveSheet.Cells(row, 58) & "' WHERE " & " joken1 = '" & ActiveSheet.Cells(row, 3) & "'" .CommandType = adCmdUnknown .Execute End With 違うテーブルで条件を2つにして設定する場合 ActiveSheet.Cells(row, 3) と ActiveSheet.Cells(row, 4)のAND条件で設定する場合は、どの様な書式になるか教えていただきたく。 ActiveSheet.Cells(row, 3) と ActiveSheet.Cells(row, 4)は両方とも文字列です
- 締切済み
- Excel(エクセル)
- 3620313
- 回答数4
- VBA where複数条件
Oracle12c office2016 oracleのデータをEXCELのマクロで更新するのにシリアル等の1つしかない条件だと次の内容で更新できます。マクロは抜粋です。 C列(ActiveSheet.Cells(row, 3))の内容がシリアルだと、下記でkomoku1,komoku2が更新可能。 With cmd .CommandText = "UPDATE table1" & " set komoku1 = '" & ActiveSheet.Cells(row, 6) & "' " & ", komoku2 = '" & ActiveSheet.Cells(row, 58) & "' WHERE " & " joken1 = '" & ActiveSheet.Cells(row, 3) & "'" .CommandType = adCmdUnknown .Execute End With 違うテーブルで条件を2つにして設定する場合 ActiveSheet.Cells(row, 3) と ActiveSheet.Cells(row, 4)のAND条件で設定する場合は、どの様な書式になるか教えていただきたく。 ActiveSheet.Cells(row, 3) と ActiveSheet.Cells(row, 4)は両方とも文字列です
- 締切済み
- Excel(エクセル)
- 3620313
- 回答数4
- VBA where複数条件
Oracle12c office2016 oracleのデータをEXCELのマクロで更新するのにシリアル等の1つしかない条件だと次の内容で更新できます。マクロは抜粋です。 C列(ActiveSheet.Cells(row, 3))の内容がシリアルだと、下記でkomoku1,komoku2が更新可能。 With cmd .CommandText = "UPDATE table1" & " set komoku1 = '" & ActiveSheet.Cells(row, 6) & "' " & ", komoku2 = '" & ActiveSheet.Cells(row, 58) & "' WHERE " & " joken1 = '" & ActiveSheet.Cells(row, 3) & "'" .CommandType = adCmdUnknown .Execute End With 違うテーブルで条件を2つにして設定する場合 ActiveSheet.Cells(row, 3) と ActiveSheet.Cells(row, 4)のAND条件で設定する場合は、どの様な書式になるか教えていただきたく。 ActiveSheet.Cells(row, 3) と ActiveSheet.Cells(row, 4)は両方とも文字列です
- 締切済み
- Excel(エクセル)
- 3620313
- 回答数4
- excel VBA タイマー表示について
お世話になります。 excelで計算問題のプログラムを組んでいます。 計算時間を表示しながら、問題を解くようにしたいと考えています。 タイマー表示を下記で行っていますが、セルに文字を入力するとタイマーが止まってしまいます。タイマーを動作させながら、文字入力を行うことは、Excelでは無理でしょうか? キー入力中、タイマー停止であれば、達成済みです。 動作は次のようにしています。 1)問題スタートで、下記タイマーを起動 2)答えをキー入力しEnterキーで答え合わせ 3)指定問題数終了で、タイマー停止 4)正解率、トータル時間を表示 Do Until blnStop = True Cells(3, 10) = Int((Timer - dblTimer) * 100) / 100 DoEvents Loop
- ベストアンサー
- Excel(エクセル)
- ken-nosuke
- 回答数3
- VBA教えてください。重複データの削除
エクセルからエクセルへのデータ取り込み、重複データ削除の方法について、とても時間がかかっており、ご教授いただきたいと思い、質問させていただきます。 よろしくお願い致します。 台帳(エクセル)とシステムから出力するcsvファイル(エクセル)があります。 csvファイル(エクセル)のデータを、台帳(エクセル)で管理します。 ‘csvファイル:商品コード、商品名、注文日、納期、などなどA~AZ列まで、1行目は項目名で、その後、1行1商品で2000行ほどデータがあります。 現在進行形のデータが全て出力されるため、台帳にあるデータと重複するものと、新規データがあり、新規データのみを台帳に追加していきたいです。 重複かどうかの判断は、A列の通し番号で判断しています。 台帳:シート4つで進捗を管理しています。 シート(1);csvファイルからデータを取り込むシート 一度出力データ全てを取り込み(※1)、シート(2)、(3)に重複があるデータを削除します(※2)。 シート(2):(1)から次工程にデータを送ったらこちらに移動(0~500行ほどあります) シート(3):(2)から次工程にデータを送ったらこちらに移動(5000行ほどあります) ※1は3秒ほどで完了するのですが、※2は1分近く時間を要しています。 もう少し短くならないかと思うのですが、いかがでしょうか。よろしくお願い致します。早ければ早いほどいいですが、10秒以内を目標にしています。 今は、csvファイルから全データをエクセルに取り込んでから(3秒ほど)、重複削除していますが、csvファイルから取り込むときに、重複データを取り込まないほうがいいのでしょうか。 現状、このような感じです。 Sub 重複削除() Dim i As Long Application.ScreenUpdating = False Application.Calculation = xlCalculationManual ‘BA列にある重複チェックが2以上のとき、削除 For i = 5000 To 5 Step -1 If Worksheets("(1)").Cells(i, 53).Value > 1 Then Rows(i).Delete End If Next i ‘BA列に重複チェックを再設定 Application.Calculation = xlCalculationAutomatic Cells(5, 1).Select Range("BA5") = "IF(A5="""","""",COUNTIF($A$4:$A5,A5)+COUNTIF((2)!$A:$A,A5)+COUNTIF((3)!$A:$A,A5))" Range("BA5").Select Selection.Copy ‘関数を値へ変換 Range("BA6:BA2000").Select ActiveSheet.Paste Application.CutCopyMode = False ‘行幅を整える Rows("5:5").Select Range(Selection, Selection.End(xlDown)).Select Selection.RowHeight = 15.75 Range("A5").Select Application.ScreenUpdating = True '画面描画を静止 End Sub
- ベストアンサー
- Excel(エクセル)
- kometoshi555
- 回答数9
- VBA教えてください。重複データの削除
エクセルからエクセルへのデータ取り込み、重複データ削除の方法について、とても時間がかかっており、ご教授いただきたいと思い、質問させていただきます。 よろしくお願い致します。 台帳(エクセル)とシステムから出力するcsvファイル(エクセル)があります。 csvファイル(エクセル)のデータを、台帳(エクセル)で管理します。 ‘csvファイル:商品コード、商品名、注文日、納期、などなどA~AZ列まで、1行目は項目名で、その後、1行1商品で2000行ほどデータがあります。 現在進行形のデータが全て出力されるため、台帳にあるデータと重複するものと、新規データがあり、新規データのみを台帳に追加していきたいです。 重複かどうかの判断は、A列の通し番号で判断しています。 台帳:シート4つで進捗を管理しています。 シート(1);csvファイルからデータを取り込むシート 一度出力データ全てを取り込み(※1)、シート(2)、(3)に重複があるデータを削除します(※2)。 シート(2):(1)から次工程にデータを送ったらこちらに移動(0~500行ほどあります) シート(3):(2)から次工程にデータを送ったらこちらに移動(5000行ほどあります) ※1は3秒ほどで完了するのですが、※2は1分近く時間を要しています。 もう少し短くならないかと思うのですが、いかがでしょうか。よろしくお願い致します。早ければ早いほどいいですが、10秒以内を目標にしています。 今は、csvファイルから全データをエクセルに取り込んでから(3秒ほど)、重複削除していますが、csvファイルから取り込むときに、重複データを取り込まないほうがいいのでしょうか。 現状、このような感じです。 Sub 重複削除() Dim i As Long Application.ScreenUpdating = False Application.Calculation = xlCalculationManual ‘BA列にある重複チェックが2以上のとき、削除 For i = 5000 To 5 Step -1 If Worksheets("(1)").Cells(i, 53).Value > 1 Then Rows(i).Delete End If Next i ‘BA列に重複チェックを再設定 Application.Calculation = xlCalculationAutomatic Cells(5, 1).Select Range("BA5") = "IF(A5="""","""",COUNTIF($A$4:$A5,A5)+COUNTIF((2)!$A:$A,A5)+COUNTIF((3)!$A:$A,A5))" Range("BA5").Select Selection.Copy ‘関数を値へ変換 Range("BA6:BA2000").Select ActiveSheet.Paste Application.CutCopyMode = False ‘行幅を整える Rows("5:5").Select Range(Selection, Selection.End(xlDown)).Select Selection.RowHeight = 15.75 Range("A5").Select Application.ScreenUpdating = True '画面描画を静止 End Sub
- ベストアンサー
- Excel(エクセル)
- kometoshi555
- 回答数9