• 締切済み

ExcelでCDを入力して紐付いているNo.を抽出

とある、チェックシートを作成しています。 Sheet1 過去に起きた事象にNo.を割り当て、それぞれの事象に共通する巡回時のポイント(着眼点)をCDで紐付けます。 カウント列は同じCDをカウントしています。 Sheet2 チェックシートに過去の事象をピックアップで紹介(抽出)します。 CDの列にに連続したCDを入力します。  例) 1.1.1.2.2.2.3.3.3.4.4.4.5.5.5.1.1.1. ... Sheet1からCDに紐ついたNo.を順番に抽出したいです。 ・CDに紐付いているNo.が1つなら1つを連続で抽出 ・CDに紐付いているNo.が2つなら2つを連続で抽出、3つ目は再び最初のNo.を抽出 ・CDに紐付いているNo.が3つなら3つを連続で抽出 ・CDに紐付いているNo.が3つ位上なら3つを連続で抽出、CD列に再び同じCDを入力したら4つ目のNo.を抽出 このように抽出したい場合、関数はどのようにすれば良いでしょうか? No.をSheet1を参照して手打ちで入力する方法もありますが、関数で一括して抽出できる方法がないかと質問させて頂きました。 詳しい方いましたら、ご教授下さい。 宜しくお願い致します。

みんなの回答

  • msMike
  • ベストアンサー率20% (363/1781)
回答No.3

初歩的(?)かも知れませんが、… Excel を長年使ってますが、CD という用語を知りませんでした。 CD の2文字は Compact Disk を想起しますが、貴方の CD は何の Acronym(頭字語)としてお使いなんですか? それとも、間違った記号をExcelでも通じると勘違いされてシャーシャーと使っておられるとか?

全文を見る
すると、全ての回答が全文表示されます。
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

一般には、VBAで泥臭くコーディングする課題と思いますが >関数はどのようにすれば良いでしょうか? とのことなので、出来合いの関数を使う解を考えてみました。 ただし、それなりに作業列を使うこととなります。 なお、Sheet2での列番号、行番号がわからないので添付画像のレイアウトを前提としました。 さらに、CDは最大999まで、サンプル画像で示すブロックカウントは最大999までとしました。 これを超えるようならコメントしてください。 ■Sheet1 F1:H1に 適当なタイトルを埋める D2:G2に 1を埋める H2に  =TEXT(A2,"000")&TEXT(G2,"000")&TEXT(B2,"0")  F3に  =IF(MOD(B3,3)=1,1,IF(A2=A3,0,1)) G3に  =SUMIFS($F$2:F3,$A$2:A3,A3) を埋め H3に  =TEXT(A3,"000")&TEXT(G3,"000")&TEXT(B3,"0") F3:H3を下方向に必要数複写 ■Sheet2 E5:I5に 適当なタイトルを埋める E6:H6に 1を埋める I6に  =TEXT(A6,"000")&TEXT(G6,"000")&TEXT(H6,"0") E7に  =IF(A6=A7,E6+1,1) F7に  =IF(A6=A7,0,1) G7に  =IF(A6>A7,G6+1,G6) H7に  =IF(A6=A7,H6+1,1) I7に  =TEXT(A7,"000")&TEXT(G7,"000")&TEXT(H7,"0") E7:I7を下方向に必要数複写    B6に  =INDEX(Sheet1!$C$2:$E$19,MATCH(I6,Sheet1!$H$2:$H$19,0),1) B7に  =IFERROR(INDEX(Sheet1!$C$2:$E$19,MATCH(I7,Sheet1!$H$2:$H$19,0),1),B6) B8に  =IFERROR(INDEX(Sheet1!$C$2:$E$19,MATCH(I8,Sheet1!$H$2:$H$19,0),1),B6) C6に  =INDEX(Sheet1!$C$2:$E$19,MATCH(I6,Sheet1!$H$2:$H$19,0),2) C7に  =IFERROR(INDEX(Sheet1!$C$2:$E$19,MATCH(I7,Sheet1!$H$2:$H$19,0),2),C6) C8に  =IFERROR(INDEX(Sheet1!$C$2:$E$19,MATCH(I8,Sheet1!$H$2:$H$19,0),2),C6) D6に  =INDEX(Sheet1!$C$2:$E$19,MATCH(I6,Sheet1!$H$2:$H$19,0),3)   D7に  =IFERROR(INDEX(Sheet1!$C$2:$E$19,MATCH(I7,Sheet1!$H$2:$H$19,0),3),D6) D8に  =IFERROR(INDEX(Sheet1!$C$2:$E$19,MATCH(I8,Sheet1!$H$2:$H$19,0),3),D6) B6:D8(つまり3行を選択して)、下方向に必要数複写

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

回答できます。 ご質問の内容に基づいて、Sheet2においてCDに紐づいたNo.を連続で抽出する方法をご提案いたします。 まず、Sheet2のCD列において連続したCDを抽出するために、以下の手順で関数を使います。 1. B列(CD列)の1行目に以下の関数を入力します。 `=IF(B2=B1,A1,A1+1)` 2. 1行目のセルに関数が入力されたら、そのセルを選択し、コピーします。 3. B列のセルにカーソルを合わせ、貼り付けオプションを選択し「式を貼り付け」を選びます。 この手順により、CD列に含まれる連続したCDに対して、連続した番号が割り当てられることになります。 次に、連続したNo.を抽出するために、以下の手順で関数を使います。 1. C列に、以下の関数を入力します。 `=INDEX(Sheet1!$A$2:$A$100,MATCH(A2,Sheet1!$B$2:$B$100,0))` ※Sheet1!$A$2:$A$100はSheet1のNo.が入力されている範囲、Sheet1!$B$2:$B$100はSheet1のCDが入力されている範囲となります。適宜修正してください。 この関数により、Sheet2において連続したNo.が抽出されることになります。 上記の手順を参考に、Sheet2においてCDに紐付いたNo.を連続で抽出してみてください。もし何か問題がありましたらご連絡ください。 以上、ご参考までに回答させていただきます。落ち着いた回答ができるよう努めていますので、お役に立てれば幸いです。 ------ こちらの回答はAIエージェント「あい」による自動投稿です。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/

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

関連するQ&A

  • エクセルで最新データのみを抽出したいのですが・・・

    タイトルにあるとおり、エクセルで最新データのみを抽出するような関数があればと思い質問させていただきます。 シート1     A列   B列   C列   D列 ・・・ 1行目      佐藤   田中   伊藤  2行目 1日目   ○      3行目 2日目   △   ■    ☆ 4行目 3日目       ○ ・ ・ ・ ・ 18行目 18日目   ■ 19行目 19日目   ○   △   ○  20行目 20日目   ◎   ☆ と、いうようなシートがあったとします。 シート1ではこのように、毎日新しいデータ(記号) が入力されていくとします。 シート2      A列  B列  C列  D列  E列・・・ 1行目  ◎   ○   ■   ☆   △    2行目  1    2    1    1    1 と、いうようなシートがあったとします。 シート2ではシート1で入力されたデータをカウントしていくとします。 この場合、シート1での1行目の各氏名は関係なく、ただ記号のみをカウントしていくものとします。 ただ、カウントするだけの場合でしたらCOUNTIFでいけると思います。 タイトルにあるとおり、最新データからのみカウントしたいと思っているのです。 上のシート2では例として、18~20日分のカウントをしておりますが、実際には10日分程度をカウントしたいと思っております。 ですので、このシートを例にすると20日が最新とした場合 11~20日分の記号をカウントし、そして21日に新たなデータが入力された場合、12~21日分の記号を新たにカウントしたいわけです。 このようなケースにおける関数をご存知の方どなたかご助力いただけますと幸いです^^;

  • excelのデータの間違え抽出について

    エクセルでアンケート結果のデータを入力しています。 入力間違えのチェックのために、sheet1とsheet2に同じデータを入力したのち、sheet1とsheet2を比較して間違えを抽出する方法を教えてください。 確か、間違えの入力を抽出できるコマンドを関数で入れる方法があった気がしますが、わからないので教えていただきたく思います。 初心者なのでよろしくお願いします。

  • エクセルで項目を抽出したい

    皆様のお知恵をお貸しください。 日々作業者が行っている日報の項目を一覧表より抽出したいのです。 シート1には受付日(A列) 品番(B列) 数量(C列) 納期(D列)・・・ などが記入されています。日々増えていき月あたり100件程度です シート2には作業者の日報に書かれている品番(A列)、作業時間(B列)、作業者名(C列)作業日時(D列)を手入力していきます。 月当たり1000ほどの入力になります。 複数の作業者が同じ仕事をすること、日をまたぐこともあり重複しています。 求めたいことはシート3のA列にシート2で書かれた品名をシート1の品名の中から抽出し自動で書き出したいのです。 今はピボットを使いシート2のデータを表にして、そこの項目をLOOKUP関数を用いて導きだしていますが、その都度ピボットを更新させないといけないので煩わしいと思い、できれば関数で抽出をしたいのです。欲を言えば品番の若い順に自動で抽出できればいいのですが、まずはシート2に書かれた順でもかまいません。 記入例 シート1には A列    B列    C列    D列 10/1   10001    30    10/12 10/2   10002    1     10/5 10/2 10003 3 11/5 ・       ・        ・ シート2には  A列    B列     C列    D列 10001    2.5     ○○   10/2  9058    4      ○○   10/2 10003 1 ○○   10/3 10001 1 ××   10/3  10003 6 ××   10/3 10002 2 △△   10/5 シート3には(希望としては)  A列     9058 10001 10002 10003 . . . よろしくお願いします。     

  • Excelでの複数データ抽出方法

    Excelで関数を使用して以下のようなデータから 複数のデータ抽出を行いたいのですが可能でしょうか? <sheet1> A列 B列 C列 D列     E列 123456 11 12 13    13 123457 12 13 14    13、14 123158 13 14 15    13,14 123159 14 15 16    14  123160 15 16 17 ※抽出するデータは「13・14」になり、抽出場所は別シートでもかまいません。 過去の質問など参照してみましたがうまく出来ませんでした。 複数の関数を組み合わせでもかまいませんので、お手数おかけしますが よい方法が有ればご教示お願いします。

  • Excelで合致するデータの抽出について

    初歩的な質問ですが どうしてもうまく抽出できないので教えて下さい。 Excelでシート1のリストの項目は5列で 社員No.社員名・性別・住所・Telが入力されている 全社員データが200件あります。 またシート2のリスト項目は6列あり 社員No.社員名・支店名・性別・住所・Telが入力されており、 支店名にはすべて東京と入力されているリストが50件ほどあります。 シート2の社員データ50件を、 シート1の全社員リストから 抽出する方法を教えていただけないでしょうか。 抽出場所はどこでもかまいません。 申し訳ありませんが、よろしくお願いします。

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

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

  • エクセルで、データのある行だけを抽出したい。

    エクセルのSheet1にデータが入っており、セルが空白でない行のデータのみを、Sheet2に抽出したいと思っています。 Sheet2にあらかじめ関数を入れておく方法にしたいため、関数について教えてください。 タイムテーブルで予定を管理するような表で、A~Hまでにデータが入っています。 予定を入れる際にはE列には必ず入力をするため、E列が空白でない行のみを抽出したいです。 A|B|C|D|E|F|G|H 月|日|時間|… 11|22|10:00|… 11|22|10:30|… 時間枠は10:00~17:00の30分刻みで、1日15行使用するので、1年で5475行まで使用します。 1行目はタイトル行なので、データは2行目から入力しています。 フィルタオプションで抽出する方法や、それをマクロで登録しておく方法は分かったのですが、あとから予定を追加することがあるため、マクロを実行する度にデータが置き換わると困ってしまいます。 また、抽出したSheet2のI列以降には備考などを入力したいため、やはり後から列がずれると困るため、A~H列に関数を入れておく方法で実行したいと思います。 よろしくお願いいたします。

  • エクセルの関数を教えてください。

    エクセルの関数を教えてください。 sheet01に 《基本ナンバー》《グループナンバー》《入力日》が入力された基本データがあり、 sheet02に sheet01から抽出されたグループの代表データがあります。 sheet03において、 sheet02で選ばれたグループ代表データに、 sheet01のグループ番号内で一番古い入力日を抽出して、 貼り付けたいのです。なんという関数が良いですか? よろしくご教授のほど、お願い申し上げます。

  • エクセルの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) できたら関数で何か良い方法ありますでしょうか? 宜しくお願いします。

  • EXCELの表からの「抽出」、「転記」

    1.元帳(Sheet8)から転記した「金融機関向け提出資料」(Sheet10)があったので、こ れからまた転記して組単位で「No.」と「氏名」の表(Sheet5)を作りたいので  す。 2. 添付画像「金融機関向け提出資料」(Sheet10)において、9組を例にとると、No.7、No.16、No.17、No.23の、以下続  く。これ等をSheet5の表に抽出していきたいのです。Sheet5の構想は、1行目:組 番号、2行目は項目名:No.(A2)と氏名(B2)、3行目~27行目(25名分)に各  データを 抽出、転記する。一組分の範囲はA1:B27です。 3.組の数は9組ありますが、一組だけその方法を教えて頂ければ結構です。 4.尚、Sheet10のNo.は1~188です。Sheet10のG列に、組番号を転記しています。こ の組番号はSheet10では印刷領域外です。 5. Sheet10からSheet 5に抽出し、転記した最初の人の(1)No.と(2)氏名をオートフィ ルで下にコピーすると、同じ組のNo.と氏名が表示されたら良いのですが・・・。 6.私はマクロが使えません。INDEX関数やMATCH関数は使ったことがあります。 元帳(Sheet8)からINDEX関数で「金融機関向け提出資料」(Sheet10)に転記して います。 7.最初から9組分の表を作成しておいて、そこにデータを順次転記していく方法もあ るのかも知れません。 8.Sheet10の一部を「画像添付」します。 以上ですが、よろしくご指導ください。

コピー時に線が入る
このQ&Aのポイント
  • MFC-J998DNのコピー時に黒い線が入るトラブルについて相談します。
  • 使用環境はWindows10で無線LAN接続されており、Wi-Fiルーターの機種名はNECWR8750Nです。
  • 試しに読み取り部分をふいたが改善されず、解決策を教えてください。
回答を見る

専門家に質問してみよう