• ベストアンサー

Excel VBAでデータを自動処理したい

april21の回答

  • april21
  • ベストアンサー率42% (91/216)
回答No.5

>条件が100個というのはE列の条件データが10個、F列の条件データが10個で、100通りほどの組み合わせがあるということなのです。早速会社で試してみますね。お忙しい中本当にありがとうございました。 それでは、各10個のデータから100通りの組み合わせを得るところから始めなくてはならないのでは? ↓のでは手動で設定してしていた100通りの組み合わせを事前にE列とF列に入れて処理させる時に 使いまわすだけで良いのかと思ってましたので各10個のデータを入れても10通りしか処理出来ません。 100通りの組み合わせが何なのかも分かりませんし・・・。 何らかの規則性があれば自動で生成する事も出来ると思いますが今の段階では分からないの出きません。 それに100通りに対応するC列に入力させるデータも分かりませんし・・・。 Excel VBAでデータを自動処理したい(2)には数値データだけでしたが データって数値だけなのですか? 条件のつけ方は2個の数値に合致するだけで良かったのですか?

kiroro302
質問者

補足

april21さん、私の質問の書き方が悪くて申し訳ありません。補足させていただきます。具体的に申し上げますと、この処理は、我社で製造しているある製品に対して2つの別の会社にテストを依頼しているのです。A社には10通りの様々な条件でテストをしてもらっています。同様にB社にも別の10通りの条件でテストをしてもらっています。我社の製品はこの二つの条件がどのように組み合わさっても、状態維持をクリアできなくては販売できません。このテスト結果を表にまとめるための処理なのです。データは条件データもC列に入力させるデータも数値ではなく文字データです。そしてA、B社2つの条件の組み合わせは100通りすべてあるわけではなく、こちらで必要な組み合わせだけですので、april21さんが最初に考えてくださったように、事前に用意しておくことが出来ます。こんな状況なのですが、どうでしょうか?貴重なお時間をお取りしてしまって恐縮です。お時間があるとき、又木が向いたときなどにでもご返答くだされば感激ですが、どうぞ負担の感じず無視されても結構です。ここまで考えてくださっただけでも本当に感謝しております。どうもありがとうございました。まずはお礼と補足まで・・・。

関連するQ&A

  • Excel VBAでデータを自動処理したい(2)

    Excelで大量のデータ処理をしなくてはならないのですが、以下の処理をExcel VBAで自動処理できないでしょうか?どなたかお知恵をお貸しください。 別シートに参照リストと未完成リストがあります。参照リストのA列のデータの並びと未完成リストのA列の並びを同じくして、未完成リストを完成させます。参照リストのA列の並びはこんな風です。1 2 3 3 5 6 7 8 8 10 ・・・(データは昇順ですが必ずしも連番ではなく、同じデータが並ぶこともあります。) そして未完成リストの方は、1 2 3 4 5 7 8 10 ・・・といった風です。未完成リストのA列は1 2 3 3 4 5 7 8 8 10・・・という風にしたいのです。つまり参照リストにあっても、未完成リストにないデータは無視します。(上の例では、6です。)参照リストになくて、未完成リストにあるデータはそのまま残します。(上の例では、4です。)両方に共通のデータで参照リストのようにデータが重複しているときは、未完成リストの方に重複している分だけ行を挿入し、上のデータをコピーします。(上の例では、3と8です。)この処理を例えば、それぞれのA列を比較し、お互い共通していないデータ行をそれぞれのリスト上で不可視にし、そのあと、参照リストのA列のデータを参考に重複してるデータを見つけたら、未完成リストの方に重複している分だけ自動に行を挿入し、上のデータをコピーして、参照リストと未完成リストの共通のデータを同じならびにしたいのです。(このあと、参照リストのB,C,Dのデータを未完成リストにコピーするので、未完成リストにしかないA列のデータは、不可視にしておいて、B,C,Dのデータをコピーするときに行がずれないようにしたいのです。) 以上(1)、(2)の処理を自動にさせるためのVBAが分かる方がいらっしゃいましたら、是非ご教授お願いいたします。

  • Excel VBAによる検索処理?

    Excelで以下の例のように、A列・B列に入力されているとします。A列を検索して、C列にB列の値を返す式を考えてますが、さっぱりわかりません。VBAとかも正直素人ですが、サンプルもしくは考え方を教えていただければと思います。以下の処理内容です。 ・AXセルが「B」であった場合、次のセル(A(X+1))を検索し、次が空白になるまで検索し、空白になる前の最後の行のB列の値をCXセルに返す。該当しない場合は空白のまま 下記の例ですと3行目、8行目のB列の値を2・3、6-8行目のC列のセルに返すことになります。よろしくお願いいたします。 (処理前) ___A__B__C ------------- 1 2__B__2 3__B__3 4______4 5______5 6__B__6 7__B__7 8__B__8 9______9 (処理後) ___A__B__C ------------- 1 2__B__2__3 3__B__3__3 4______4 5______5 6__B__6__8 7__B__7__8 8__B__8__8 9______9

  • excelで条件に一致するデータ全てを抽出する方法

    現在、エクセル2003を使用しています。 A列・B列・C列にデータが入力されています。 ただし、空白セル(空白行)もあります。 A列に“@Name”とデータ入力がある場合 同じ行のC列の値を抽出したいと思います。 A列に@Nameは複数ありますが、C列の値は それぞれ違いますので、データの集計先はF列に 全て抽出をしたい。 なにか良い方法(VBAや関数)がありましたら 教えてください。

  • VBAでEXCELファイルからデータを抽出する方法

    VBAで、サーバーにある大量のデータを含むCSVファイルから、ある条件に一致するデータを抽出する方法を教えてください。 (例)  コード   名称  在庫数  その他データ  A12300  ○○○  999   XXXXXXXX  A12400  ○○○  999   XXXXXXXX  B12500  ○○○  999   XXXXXXXX  B11100  ○○○  999   XXXXXXXX  C11200  ○○○  999   XXXXXXXX 上記データからコードの一桁目が「A」と「C」のものを抽出する場合の、VBAを教えてください。 抽出後、EXCELの別ファイルに上書き保存します。 デイリーで処理をするので、VBAで自動化したいのです。 よろしくお願い致します。

  • エクセルの関数でのデータ処理が重い

    お願いします。 エクセルで2万件のデータを関数処理しています。時間がかかるのでVBAで処理できればと 考えています。 A列に当日の顧客コード B列に前日の顧客コード   以下の式によって、前日と当日を比較して増えた顧客と減った顧客を表示させています。 C列に=IF(COUNTIF(B$2:B$23000,A2)>=1,"","増")の関数が入っています。 計算させた後でC列をオートフィルタで増のみ表示し、確認。 D列に=IF(COUNTIF(A$2:A$23000,B2)>=1,"","減")の関数が入っています。 計算させた後でD列をオートフィルタで減のみ表示し、確認。 これをVBAで処理して時間の短縮をしたいのでお教え頂ければ幸いです。 宜しくお願いします。

  • 【エクセル】重複データ抽出時にうまくいかない

    エクセル2003で、[データ]→[フィルタ]→[フィルタオプションの設定]で下記のように 設定して重複データを省きました、 ・「指定した範囲」にチェック ・「リスト範囲」に$A$1:$A$13を入力。 ・「抽出範囲」に$B$1を入力 ・「重複するレコードは無視する」にチェック の条件で実行すると。 [元データ]  A列 1 a 2 a 3 b 4 b 5 c 6 c 7 c 8 d 9 d 10 d 11 e 12 e 13 e が [フィルタ実行後]  A列  B列 1 a  a 2 a  a 3 b  b 4 b  c 5 c  d 6 c  e 7 c 8 d 9 d 10 d 11 e 12 e 13 e の様にB列でaが2つ出てしまいます。 なにが原因でしょうか?

  • エクセル 関数を自動的に入力するVBAで困っています

    VBA初心者です。 エクセルの入力シートで行ごとにデータを下記のように入力しています。      A      B       C 1   日付    品番     商品 2   10/25    10     りんご 3   10/26    20     みかん 4 5 6 2行目から順にデータを入力すると自動的にC列にVBAで VLOOKUP関数をセットして商品を検索したいのですが 上手くできませんでした。 教えてください。よろしくお願いします。

  • エクセルで重複したデータの処理をしたい

    お世話になります。 A列はランダムに数字が入っています。(並び替えはされていない) このA列の数字は重複するものがあります。 A列の中で重複する場合に、上から順に1/3,2/3,3/3などになるようにしたい。 例) A1:1 A2:2 A3:1 A4:3 A5:1 A6:2 A7:4 のとき 1は3つ出てくるので1/3,2/3,3/3 2は2つ出てくるので1/2,2/2  3,4は1つなので空白にする。 このときB列に分子を、C列には分母を入力する。 この例の場合、B1:1 C1:3 B2:1 C2:2 B3:2 C3:3 B4:空白 C4:空白 B5:3 C5:3 B6:2 C6:2 B7:空白 C7:空白 と入力されるようにするにはどういう計算式をB列、C列に入れておけばよいのでしょうか? Excel2002です。 実際はかなりの量があります。 よろしくお願いします。

  • エクセルVBAの書き方で教えてください。

    エクセルで、 「A列にデータを入力した日付をB列に自動で入れる」 (A列のデータを消したときは、B列のデータも消える)ということをするのに、 他の質問を参考にして、 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then   '対象の列が1列目(A列)なら If Target.Value <> "" Then   '入力された値がブランクでなければ Target.Offset(0, 1).Value = Date   '0行ずれた(同じ行)の1列右隣に日付を入れる Else       'そうでなければ(Deleteキーで消されたら) Target.Offset(0, 1).Value = ""   '同行右隣をブランクすなわち""として消す End If      '入力された値の処理終り End If      '1列目(A列)の処理終り、従ってB列以降はチェックしない End Sub と、入力して、うまく動きました。 ところが、「A列に入力」→「B列に自動で日付」だけでなく、 「D列に入力」→「E列に自動で日付」 「H列に入力」→「I列に自動で日付」と、1つのエクセルシートの中で いくつかの同じ条件のことを繰り返そうと思うとうまくいきません。 この場合、どのようにVBAを記入したら良いのか、教えてください。 よろしくお願いします。

  • EXCEL マクロ・VBA 自動で連番を振る

    EXCELのマクロ・VBAについて質問です。 例えば、B列にデータを入力すると、入力した行まで自動的にA列に連番が入力されるようにしたいのですが、どういった方法があるでしょうか。 マクロやVBAについてはこれから勉強をしようと思っている素人ですので、コードとその解説をいただけると助かります。