• ベストアンサー

Excelで1つの条件で複数の値を抽出するVBA

製造した製品について作業を行うカレンダー予定表を作りたいのですが、 生産計画をマスターシート(Sheet1)として、作業計画(Sheet2)を 以下の画像のように、自動的に抽出する事はできますか? 私は、Excelはあまり詳しい方ではありません。 それなりに色々と調べてはみたのですが、関数では思ったような物ができず、 うまくいきませんでした。 どうかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

回答No2,3です。シート2のB2セルへは次の式で良かったですね。 =IF(ISERROR(INDEX(Sheet1!$A:$B,MATCH(LOOKUP(10^10,$A$2:$A2)*100+ROW(A1)-MATCH(10^10,$A$2:$A2)+1,Sheet1!$D:$D,0),COLUMN(A1))),"",INDEX(Sheet1!$A:$B,MATCH(LOOKUP(10^10,$A$2:$A2)*100+ROW(A1)-MATCH(10^10,$A$2:$A2)+1,Sheet1!$D:$D,0),COLUMN(A1)))

sugar-ball
質問者

お礼

KURUMITOさん お礼遅くなりましたが、早速の回答ありがとうございます。 なるほど~☆作業列の使い方、参考になります。 自分なりにアレンジして、思っていた予定表が仕上がりました!!! 今月から、作業に活かせそうです。本当に助かりました~。 ありがとうございます(^-^)

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! VBAでの一例です。 前提条件として・・・ (1)画像のようにSheet2のA列は6セル毎に結合している (同一日のデータは6以上表示しない)というコトが前提となります。 (2)同一日に生産された「製品名」「製品番号」の重複はない。 だとします。 画面左下のSheet2のSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてSheet2のA列に日付データを入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim i, k As Long Dim ws As Worksheet Set ws = Worksheets("Sheet1") '←「Sheet1」の部分は実際のSheet名に! On Error Resume Next If Intersect(Target, Columns(1)) Is Nothing Or _ Target = "" Then Exit Sub Application.ScreenUpdating = False k = Target.Row - 1 Range(Cells(k + 1, 2), Cells(k + 6, 3)).ClearContents For i = 2 To ws.Cells(Rows.Count, 1).End(xlUp).Row If ws.Cells(i, 3) = Target Then k = k + 1 With Cells(k, 2) .Value = ws.Cells(i, 1) .Offset(, 1) = ws.Cells(i, 2) End With End If Next i Application.ScreenUpdating = True End Sub 'この行まで 参考になりますかね?m(_ _)m

sugar-ball
質問者

お礼

tom04さん 丁寧なご回答ありがとうございます。 ただ、日付は、月初めの1日目(4/1)を入力し、以降A列の4/2,4/3,・・・は 数式で自動的に表示させるつもりでした。 B列、C列は、A列に直接入力した時しか表示されませんでした。 私は、コードの意味はよく分かりませんが、入力したところは、うまく表示され、 感動しました!!! ありがとうございます☆

すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

式が複雑になりますので作業列を作って対応するのがよいでしょう。また配列数式などを使いますと計算に負担がかかります。 シート1のD2セルには次の式を入力して下方にドラッグコピーします。 =IF(C2="","",C2*100+COUNTIF(C$2:C2,C2)) シート2のB2セルには次の式を入力してC2セルまでドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(ROW(A1)>MATCH(10^10,$A$2:$A2)+5,"",IF(ISERROR(INDEX(Sheet1!$A:$B,MATCH(LOOKUP(10^10,$A$2:$A2)*100+ROW(A1)-MATCH(10^10,$A$2:$A2)+1,Sheet1!$D:$D,0),COLUMN(A1))),"",INDEX(Sheet1!$A:$B,MATCH(LOOKUP(10^10,$A$2:$A2)*100+ROW(A1)-MATCH(10^10,$A$2:$A2)+1,Sheet1!$D:$D,0),COLUMN(A1))))

すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで複数の条件を満たした値を返す関数を教えてください。

    エクセルで複数の条件を満たした値を返す関数を教えてください。 (画像を添付しました) 左の表(A1からD9)のデータを右の表でIDと製品を選択すると 会社名、名前が抽出するような関数を教えてください。 INDEXやMATCHなど使ってみたんですが、組み方が悪いのかうまく抽出できませんでした。 よろしくお願いします。

  • エクセルで条件1つで、複数の値を抽出することできますか?

    加工作業の日報をエクセルでつけているのですが、品名と、それに使う資材をあるシートにマスターテーブルとして登録してあるのを前提に、日報のシートで、以下の作業を自動的にでるようにできますでしょうか? ★マスターシート:   A   B 品名   資材名  ←項目名 FD    シール FD    FDケース FD    FD本体 FD    箱 CD-R   シール CD-R   CDケース CD-R   CD本体   ・     ・ ・     ・ ★日報シート:   A   B  FD   シール   ←例えば、このA1にFDと入力すると、      FDケース    B1~B4に資材が出る      FD本体     A5にCD-Rと入れると、B5~B7に      箱       その資材が出る いろいろ検索してみたのですが、知りたいことを見つけることができなかったので、質問します。 関数でできれば一番良いのですが、VBAでもかまいません。 どうかよろしくお願いします。

  • [エクセル]複数条件を抽出する関数

    エクセル初心者級です。 (関数はある程度理解できますが、マクロはできません) 今、休暇管理のエクセルシートを作っていて 下のような表を作成しています。     A      B      C     D     E     F… 1 [氏名]    [合計]   [4/1]  [4/2]  [4/3]  [4/4] 2 山田太郎  1.5日        半休        全休 3 田中花子  0.5日        半休 4 鈴木美穂  1.0日              全休 このデータを基に別シートのカレンダに落とし込みたいのです。     A     B     C     D     E     F     G 1 2011年4月 2  日曜   月曜   火曜   水曜   木曜   金曜   土曜 3                                 1 2 4                                   山田・田中 5   3     4     5     6     7     8 9 6 鈴木    山田 A1セルに年月を入れたら自動で日付が入るようカレンダは作成しました。 後は、基シート(上の表)でその該当日に 全休なり半休なりの言葉を入れている人を抽出し カレンダの日付の下に名前を入れられるようにしたいのです。 (1)カレンダと表の日付が一致していて (2)その日付の表の所に何かしらの文字が入っている人 を自動で抽出したできるようにしたいのですが 何か良い方法はないでしょうか。 このシートはパソコンを使い慣れていない人も使用するため できれば関数で一発でできるようなものがあれば有りがたいのですが… アドバイスをいただけないでしょうか。 よろしくお願いいたします。

  • エクセル 複数の条件を抽出

    エクセルで複数の条件を抽出する方法について教えてください。 sheet2には以下の表があります。 A列  商品名1 B列  商品名2 C列  評価1 D列  評価2 sheet1には複数のデータがあり、そのデータを使って商品名と評価を出しています。 (商品名は手入力して、評価は関数を使って数値を出しています。) ここから、評価1がある値以上かつ評価2がある値以上の商品名1と商品名2をsheet3に抽出したいのです。(実際にやりたいのは、評価1が2%以上かつ評価2が0.9以上という条件です。) sheet3に出したいのは見やすいと思ったからで、どうしてもというわけではありません。 商品名が分かれているのはsheet2で作業がしやすいように分けています。必要であれば統合します。 評価1は書式設定で%表記にしています。 一応自分なりに調べてはみたものの、全くの初心者な為わかりませんでした。 初心者でもわかるように教えていただければありがたいです。

  • エクセル 複数条件抽出について

    エクセル2013を使用しています。 データシートより複数条件に当てはまるデータを 別のシートへ必要な項目のみ抽出する方法(関数orマクロ)をお教え下さい。 データシート:A列からU列まで様々なデータが入力されている。 抽出条件:H列とN列 抽出する項目:C列・I列・M列・O列・Q列・R列・S列 (抽出する項目は増える可能性有) 複数条件の抽出はフィルタオプションで出来たのですが、 抽出が必要な項目を指定する方法が分かりませんでした。 宜しくお願いします。

  • Excelで複数条件を満たすデータを抽出

    以下のような場合の、データ抽出方法を教えてください。 Sheet1 "計画”, Sheet2 "実績”があります。 それぞれのSheetの A~Dには、共通列項目である ”都道府県””都道府県コード””品目””品番” が設定されています。 このふたつのSheetをまとめて、項目順に”計画”データの下に”実績”データがくるようなSheetを作りたいのですが、上記4つの条件が全て共通なデータを、関数等と使って抜出すことはできるのでしょうか? If、VLOOKUP、And、”名前をつける”などを組み合わせて、いろいろ考えてみたのですが、複数条件を満たす結果の抽出ができませんでした。 宜しくお願いします。

  • Excel 複数行の抽出について

    Excel 複数行の抽出について Sheet1に商品リストがあります。 Sheet2に商談IDがあります。 Sheet3にSheet2の商談IDがある商品だけ、抽出したいです。 Excelの関数もしくはマクロで解決できますでしょうか。 ご回答お願いいたします。

  • エクセルの関数で複数条件での抽出

    エクセルの関数を教えて欲しいです。 会員番号順に並んだ名簿を、別のシートへフリガナの「ア行」「カ行」「サ行」・・・・と フリガナ順で抽出をしたいのです。 下の図が関数でやりたいイメージです。 私自身、VBAは全く分からなく、関数なら初心者程度に分かりますので関数で 教えて下さい。 宜しくお願いします。

  • 【エクセル】マスターから条件一致の全データ抽出

    質問させていただきます。 バージョンは2003です。 一つのBOOK内に、マスターデータsheet(以下、マスター)が一つあります。2sheet目以降は同じフォーマットで個人毎の区分でsheet分け(以下、個人シート)しており、マスターから個人名にてデータを抽出し、個人シートに一覧表を作成したいと考えております。またレギュレーションとしては、BOOKを開いた時には自動で計算されていることです。 いろいろな関数で試しても構築できずに困っております。 またVBAについては完全に素人ですが、領域的にはVBAであろうと覚悟はしております。 関数でもVBAでも構いません。何卒ご教授くださいませ。 よろしくお願いいたします。 ■マスターデータ  A   B   C    1鈴木 商品1 外注1 2山田 商品2 外注2 3田中 商品3 外注3 4鈴木 商品4 外注1 5鈴木 商品5 外注3 例えば“鈴木用”個人シートであれば、1,4,5行にある3データを個人シート上に一覧表として表示させたいです。 参考までに情報量としては、マスターデータでは29列×3000行。個人シートは100シート程度あります。 よろしくお願いいたします。

  • エクセルのVLOOKUP関数で…(複数条件?の抽出)

    ●シート2、A列に部品正式名称、B列に部品略称の一覧表(部品の種類は約500点) ●シート3、A列に略称、B,C,D,E,F,G列と続けて寸法などの詳細を記した一覧表 があります。 ●シート1に検索一覧表として、B列(B3~B8)は項目、セルC3~C8にVLOOKUPでシート3の情報が抽出されるようにしてあります。 C1で略称を入力し抽出するのはOKなのですが、正式名称で入力しても同じようにシート3の情報を抽出するようにしたいです。 (IFを使って思いつく関数を組合わせてみたりしたのですが、うまくいきませんでした(TT) できたら関数で何か良い方法ありますでしょうか? 宜しくお願いします。

このQ&Aのポイント
  • 携帯アプリからの印刷はできるが、同じネットワークに繋がっていないというエラーメッセージが表示されてスキャンできない問題が発生しています。
  • 使用している環境はiOSで、無線LANで接続されています。電話回線は光回線です。
  • この問題の解決方法や関連するソフト・アプリについての情報は記載されていません。
回答を見る

専門家に質問してみよう