HohoPapa の回答履歴
- 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
- win10 コマンド 管理者画面から出たい
お世話様です。 実は、win10 proのPCを購入して、windows Sever2019を途中まで入れて 失敗。画面がコマンドプロンプトの状態です。 C¥Windows¥system32¥cmd.exeのダイアログ画面で、 C¥Users¥Administrator>の状態です。 管理者のPWは、メモしてあります。 3度再起動しても win10proになりませんし、この画面からexitコマンドでも抜け出せません。 win10pro の インストールデータと認証のIDはあります。 なにか方法があるのでしょうか。
- ベストアンサー
- Windows系OS
- cocloniziyzl
- 回答数1
- EXCELでどうやったらいいのかわからない事が
EXCELでどのような考え方をすればいいのかわからないので 教えていただけたら幸いです 例えば A セル1 3.5 2 2.5 3 4.0 4 2.7 5 4.0 の、様な数があったとします A1からA3を足すと10になります A1:A3が ”8” になったら区切りをつけ、余りの数(2)に分け 余りの数(2)のA3からまた合計が”8”になるまで 計算してを下に徐々に”8”になったらその計算を何度も繰り返して (次はA3:A5で合計が8になるまで) できるようなやり方どなたか知りませんか? 関数でもVBAでもいいので教えていただけると幸いです よろしくお願い致します
- excel関数の計算について
office2016 oracleのテーブル1からデータ取得し、データ加工してoracleのテーブル2にデータを登録という流れの中で、データ加工処理に時間がかかっています。 下記excel VBAの内容は sheet1のC列:シリアルデータ(8桁文字列 例ABCD0001) sheet1のAE列:日付データ(8桁文字列 例20200612) sheet1のC列全体をsheet2のA列へコピー sheet1のAE列全体をsheet2のB列へコピー sheet2のF列に開始時刻データ(14桁文字列) sheet2のG列に終了時刻データ(14桁文字列) を設定 という内容になっています。 F列は日付データの稼働日3日前で時刻が0845 例20200609084500 G列は日付データの時刻が1700 例20200612170000 という計算を実施します。 T_非稼働日シートには工場の非稼働日データ(2020/05/05みたいな休日等)をA列に設定しています。 excel上で計算方法の設定は”手動”にしておき700件くらいのデータに関して下記マクロ実行すると約30[s]程度かかります。 sub test() Application.Calculation = xlCalculationManual 'sheet1 最終行の取得 Dim LASTROW As Long LASTROW = Worksheets("sheet1").Cells(Rows.Count, 3).End(xlUp).ROW 'sheet1のシリアルデータ(C列)をsheet2 A列へコピー Worksheets("sheet1").Range(Worksheets("sheet1").Cells(1, 3), Worksheets("sheet1").Cells(LASTROW, 3)).copy _ Destination:=Worksheets("sheet2").Cells(1, 1) 'sheet1の納期データ(AE列)をsheet2 B列へコピー Worksheets("sheet1").Range(Worksheets("sheet1").Cells(1, 31), Worksheets("sheet1").Cells(LASTROW, 31)).copy _ Destination:=Worksheets("sheet2").Cells(1, 2) 'F列 日付データの稼働日3日前で時刻が084500 Worksheets("sheet2").Range("F1:F" & Range("A" & Rows.Count).End(xlUp).ROW).Value = "=TEXT(WORKDAY(DATE(MID(RC[-4],1,4), MID(RC[-4],5,2), MID(RC[-4],7,2)),-3,T_非稼働日!C[-5]),""yyyymmdd"")&""084500""" 'G列 日付データの時刻が170000 例20200612170000 Worksheets("sheet2").Range("G1:G" & Range("A" & Rows.Count).End(xlUp).ROW).Value = "=RC[-5]&""170000""" Application.Calculation = xlCalculationAutomatic end sub A列 B列 ABCD0001 20200612 ABCE0001 20200608 ABCE0002 20200610 ABDD0001 20200616 ABDD0002 20200623 … 約600行 これを end sub A列 B列 F列 G列 ABCD0001 20200612 20200609084500 20200612170000 ABCE0001 20200608 20200603084500 20200608170000 ABCE0002 20200610 20200605084500 20200610170000 ABDD0001 20200616 20200611084500 20200616170000 ABDD0002 20200623 20200618084500 20200623170000 … の様にするのに30[S]くらいの時間がかかっている。F列データ作成が遅い状況。 ところが、 Application.Calculation = xlCalculationManual Application.Calculation = xlCalculationAutomatic の内容を削除し、計算方法の設定を”自動”で実施すると8[S]程度で終了します。 計算方法は手動の方が早いはずなのに自動の方が速いのは何故なのでしょう? また600行の計算(F列データを作成する部分です)に関して、もう少し早く出来る構成がありましたら教えていただきたく。
- ベストアンサー
- Excel(エクセル)
- 3620313
- 回答数2
- 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
- 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
- エクセルについて質問をさせていただきます。
エクセルについて、疑問に思ったことをいくつか質問をさせていただきます。 1. データが入ったエクセルをテキストにコピーをすると、データ間にタブが入っています。これはエクセルのセル間はタブという情報が埋め込まれているということでしょうか? 2. テキストに張り付けたデータの先頭には"がついていることがあります。なぜでしょうか? 3. フォルダのパスをクリックしたら、エクスプローラが起動するようにしたいです。ハイパーリンクがうまくできないのですが、どのよう設定をするのでしょうか? ご存知の範囲でもしお知りであれば、教えていただけると、大変嬉しいです。 よろしくお願いいたします。
- 締切済み
- その他(業務ソフトウェア)
- BinBin4949
- 回答数1
- Excel ユニーク数1のものだけを数えたい
Excelに関しての質問です。 例えばA列に「犬」「ねこ」「うさぎ」という文字列がそれぞれ複数散らばっているとして、B列には「犬A」、「犬B」、「犬C」… 、「ねこA」、「ねこB」…というように文字列がそれぞれ複数入っているとします。(アルファベットはA以降、どこまで入っているかわからないとします)(A列とB列の動物の種類はそれぞれ一致するものとします。) C列で、B列のユニーク数をカウントものを出します。 →ここからが本題なのですが、A列の動物に対して、B列の「ABC...」の数はいくつかを出したい(=D列)のですが、関数はどのようになりますか? ユニーク数が「1」であるものの数を数えればいいと思うのですが、式を教えていただきたいです。
- ベストアンサー
- その他(Windows)
- ukykkuk
- 回答数4
- Excel ユニーク数1のものだけを数えたい
Excelに関しての質問です。 例えばA列に「犬」「ねこ」「うさぎ」という文字列がそれぞれ複数散らばっているとして、B列には「犬A」、「犬B」、「犬C」… 、「ねこA」、「ねこB」…というように文字列がそれぞれ複数入っているとします。(アルファベットはA以降、どこまで入っているかわからないとします)(A列とB列の動物の種類はそれぞれ一致するものとします。) C列で、B列のユニーク数をカウントものを出します。 →ここからが本題なのですが、A列の動物に対して、B列の「ABC...」の数はいくつかを出したい(=D列)のですが、関数はどのようになりますか? ユニーク数が「1」であるものの数を数えればいいと思うのですが、式を教えていただきたいです。
- ベストアンサー
- その他(Windows)
- ukykkuk
- 回答数4
- Excel VBAで条件に合わせて行をまとめる
Excel VBAは初心者なので皆様のお知恵を拝借したいです。 No列、名称列、年月列、金額A列、金額B列があるExcelファイルを 以下のような条件のときに行をまとめたいです。 【まとめる条件】 ・Noが同じである ・年月が同じである ・名称に★マークが含まれていない 列をまとめた際の名称は一番上の名称をしようします。 また金額A・Bはそれぞれ合算したいです。 お知恵のある方はどうかお力をお貸しください。 よろしくお願い致します。
- 締切済み
- Excel(エクセル)
- Shoki2440
- 回答数4
- 商品名の紐づけと数量および金額の転記
マクロもしくは関数で下記処理を行いたいです。 添付画像の項目名は実際とは異なり例となりますが、 同一項目(例えば、シート1の「健康診断」とシート2の「一般検診」を同じものを指している)として扱います。 シート1の「健康診断」の項目に、シート2の「一般検診」の数量および金額を転記したいのですが、シート2の項目は時と場合に応じて項目数が変動します。 今月は3項目全てデータがあるが、次月は一般検診だけデータがなく、「おしぼり」と「プラスチック」だけデータがある、というような状態です。 シート1の項目においては据え置きで、シート2にて対応する項目のデータがなければ「0」と表記したいです。 このように転記元の項目数に変動(項目名は変わらない)があり、且つ転記先と項目名が異なる場合の、データ転記方法はどのようなものがあるでしょうか? VLOOKUPでは希望する処理が出来ないと考えますので、マクロしかないのかな?と思っていますが…
- 締切済み
- Excel(エクセル)
- uft_664
- 回答数9
- 商品名の紐づけと数量および金額の転記
マクロもしくは関数で下記処理を行いたいです。 添付画像の項目名は実際とは異なり例となりますが、 同一項目(例えば、シート1の「健康診断」とシート2の「一般検診」を同じものを指している)として扱います。 シート1の「健康診断」の項目に、シート2の「一般検診」の数量および金額を転記したいのですが、シート2の項目は時と場合に応じて項目数が変動します。 今月は3項目全てデータがあるが、次月は一般検診だけデータがなく、「おしぼり」と「プラスチック」だけデータがある、というような状態です。 シート1の項目においては据え置きで、シート2にて対応する項目のデータがなければ「0」と表記したいです。 このように転記元の項目数に変動(項目名は変わらない)があり、且つ転記先と項目名が異なる場合の、データ転記方法はどのようなものがあるでしょうか? VLOOKUPでは希望する処理が出来ないと考えますので、マクロしかないのかな?と思っていますが…
- 締切済み
- Excel(エクセル)
- uft_664
- 回答数9
- 商品名の紐づけと数量および金額の転記
マクロもしくは関数で下記処理を行いたいです。 添付画像の項目名は実際とは異なり例となりますが、 同一項目(例えば、シート1の「健康診断」とシート2の「一般検診」を同じものを指している)として扱います。 シート1の「健康診断」の項目に、シート2の「一般検診」の数量および金額を転記したいのですが、シート2の項目は時と場合に応じて項目数が変動します。 今月は3項目全てデータがあるが、次月は一般検診だけデータがなく、「おしぼり」と「プラスチック」だけデータがある、というような状態です。 シート1の項目においては据え置きで、シート2にて対応する項目のデータがなければ「0」と表記したいです。 このように転記元の項目数に変動(項目名は変わらない)があり、且つ転記先と項目名が異なる場合の、データ転記方法はどのようなものがあるでしょうか? VLOOKUPでは希望する処理が出来ないと考えますので、マクロしかないのかな?と思っていますが…
- 締切済み
- Excel(エクセル)
- uft_664
- 回答数9
- CDOメール送信が出来なくなった
CDOでメール送信が5年以上正常に出来ていたのですが 突然送信されなくなり、CDOの設定内容がおかしいのだとは 思いますが、何が悪いのか教えて下さい。 ↓今まで正常だったときのCDOパラメータ設定内容 .Item(cdoSendUsingMethod) = 2 .Item(cdoSMTPServer) = "smtp.ocn.ne.jp" .Item(cdoSMTPServerPort) = 587 .Item(cdoSMTPConnectionTimeout) = 60 .Item(cdoSMTPAuthenticate) = True .Item(cdoLanguageCode) = strCharacter .Item(cdoSendUserName) = "outlookのアカウント名" .Item(cdoSendPassword) = "outlookのパスワード" .Item(cdoSMTPUseSSL) = False ↑ outlookアカウント設定内容は添付します どこの設定を変更すれば良いか? ご教授下さい 宜しくお願い致します
- ベストアンサー
- Visual Basic
- yuyu4247
- 回答数1
- エクセルVBA複数ファイルのデータを1つのシートに
(1)サーバー上にある圧縮ファイルをダウンロード (URLはエクセルの一覧表をクリック)※図A (2)ダウンロードした圧縮ファイル(ZIP形式)を解凍する (3)エクセルファイルを開いて範囲を指定してコピー (コピーする範囲はB2:C101の100行2列のデータ)※図B (4)コピーしたデータを別ファイルのエクセルシートにペースト (シートは1枚、下に下に続けてペースト) 表にあるURL一覧の最後まで(1)~(4)を繰り返す (パソコン環境) Windows10 Google Chrome Excel2010
- ベストアンサー
- Visual Basic
- value100100
- 回答数4
- エクセルVBA複数ファイルのデータを1つのシートに
(1)サーバー上にある圧縮ファイルをダウンロード (URLはエクセルの一覧表をクリック)※図A (2)ダウンロードした圧縮ファイル(ZIP形式)を解凍する (3)エクセルファイルを開いて範囲を指定してコピー (コピーする範囲はB2:C101の100行2列のデータ)※図B (4)コピーしたデータを別ファイルのエクセルシートにペースト (シートは1枚、下に下に続けてペースト) 表にあるURL一覧の最後まで(1)~(4)を繰り返す (パソコン環境) Windows10 Google Chrome Excel2010
- ベストアンサー
- Visual Basic
- value100100
- 回答数4
- エクセルVBA複数ファイルのデータを1つのシートに
(1)サーバー上にある圧縮ファイルをダウンロード (URLはエクセルの一覧表をクリック)※図A (2)ダウンロードした圧縮ファイル(ZIP形式)を解凍する (3)エクセルファイルを開いて範囲を指定してコピー (コピーする範囲はB2:C101の100行2列のデータ)※図B (4)コピーしたデータを別ファイルのエクセルシートにペースト (シートは1枚、下に下に続けてペースト) 表にあるURL一覧の最後まで(1)~(4)を繰り返す (パソコン環境) Windows10 Google Chrome Excel2010
- ベストアンサー
- Visual Basic
- value100100
- 回答数4
- エクセルVBA複数ファイルのデータを1つのシートに
(1)サーバー上にある圧縮ファイルをダウンロード (URLはエクセルの一覧表をクリック)※図A (2)ダウンロードした圧縮ファイル(ZIP形式)を解凍する (3)エクセルファイルを開いて範囲を指定してコピー (コピーする範囲はB2:C101の100行2列のデータ)※図B (4)コピーしたデータを別ファイルのエクセルシートにペースト (シートは1枚、下に下に続けてペースト) 表にあるURL一覧の最後まで(1)~(4)を繰り返す (パソコン環境) Windows10 Google Chrome Excel2010
- ベストアンサー
- Visual Basic
- value100100
- 回答数4
- エクセルで特定のシートだけを別ファイル名で保存
いつもお世話になっております。 作業用の既存Bookの特定のシート(提出用)だけを、別のファイル名で保存したい。 保存先フォルダーはフルパスで指定して、ファイル名は当該シートの指定セルの内容で、xlsx形式で保存したいのです。 過去の質問に似たようなケースの回答があるのですが、悲しいかな使いこなせないレベルなのでHELPさせていただきます。
- ベストアンサー
- Excel(エクセル)
- akira0723
- 回答数10