アプリ版:「スタンプのみでお礼する」機能のリリースについて

条件に該当する人を抽出したい

いつもご教授いただきましてありがとうございます。

氏名、氏名コード、課コード、配布該当者と記載のある
元データがあります。

課ごとに別シートに分かれており、元データの配布該当者列に⚫︎か⚪︎がついている人の氏名、氏名コードを氏名コード順に抽出して表示させたいのです。
課コードはD2に入力してあります。

countifを使用するのはイメージできるのですが
それにvlookupかindexmatchを組み合わせたらいいのか分かり兼ねまして質問させていただきました。

何卒ご教授願います。

「条件に該当する人を抽出したい いつもご教」の質問画像

質問者からの補足コメント

  • 抽出先の表を添付いたします。

    「条件に該当する人を抽出したい いつもご教」の補足画像1
      補足日時:2020/07/07 08:54
  • この度はご教授頂きましてありがとうございます。
    すみません、下記数式の部分を再度ご教授頂けませんでしょうか?
    ROW($A$3:$A$1000)-2),ROW(A1))),"")

    No.5の回答に寄せられた補足コメントです。 補足日時:2020/07/08 17:46
  • この度はご教授頂きましてありがとうございました。
    教えていただいたサイトを拝見させていただき、再度ご教授いただきたく…。

    今回⚪︎と⚫︎どちらも印がついてる人を抽出したいです。
    サイトの数式のどの部分を繰り返して組み込めばよいでしょうか?

    match(large〜の部分でしょうか?

    何度も申し訳ありませんが何卒ご教授願います。

    No.4の回答に寄せられた補足コメントです。 補足日時:2020/07/08 17:58
  • うーん・・・

    こんにちわ。
    やはり、正しい名前が表示されません。

    ちなみに、セルの書式設定や数式が入っていることが関係していたりしますでしょうか?

    No.9の回答に寄せられた補足コメントです。 補足日時:2020/07/10 12:37

A 回答 (10件)

またまたお邪魔します。



今一度こちらで確認してみました。
↓の画像のような配置で、Sheet2のB3セルには
No.9の数式をそのままコピー&ペースト(配列数式の操作)し
列・行方向にフィル&コピーしています。

問題なく表示されているのですが。

>セルの書式設定や数式が入っていることが関係していたりしますでしょうか?
書式とは数式はまったく関係ないはずです。
返ってくるのはあくまで「値」なので・・・

ん~~~
こちらではまったく理由が判りません。
例えば「○」は記号の「○」ではなく、漢数字の「〇」などの場合や
Sheet1のD列が文字列になっていて、Sheet2のD2セルが数値などの場合は
別データとして扱われるので、何も表示されなくなるはずですが。m(_ _)m
「条件に該当する人を抽出したい いつもご教」の回答画像10
    • good
    • 2
この回答へのお礼

助かりました

こんにちわ。

何度もご教授頂きましてありがとうございました。

いろいろと確認、検証いたしましたところ無事解決いたしました。

初歩的な確認ミスで抽出先の列数が違うことを発見し、それを提示した列の並びに修正しましたところ正しく抽出されました。
お騒がせしまして申し訳ありませんでした。

何度もお手数おかけいたしました。
また、ご丁寧にご教授頂きまして感謝いたします。
ありがとうございました。

お礼日時:2020/07/10 18:42

続けてお邪魔します。



>実際のデータは5行目以降なので-4としました。

というコトは数式は
=IFERROR(INDEX(Sheet1!B$5:B$1000,SMALL(IF((Sheet1!$D$5:$D$1000=$D$2)*((Sheet1!$E$5:$E$1000="○")+(Sheet1!$E$5:$E$1000="●")),ROW($A$5:$A$1000)-4),ROW(A1))),"")

となるはずですが、
これでもダメですか?m(_ _)m
この回答への補足あり
    • good
    • 1
この回答へのお礼

うーん・・・

何度も申し訳ありません。

はい、ご提示いただきました数式でこちらも試しておりました。併せて、ご提示頂いた数式をコピペしたのですがやはり同じ結果となってしまいます…。

もう一度、明日試してみたいと思います…。

お礼日時:2020/07/09 18:58

No.5~7です。



>違う課の数字も拾ってしまいます。

Sheet2のD2セルに拾い出ししたい「課」のデータをいれているのですよね?
そうであれば、No.5の数式でちゃんと表示されるはずですが・・・

とりあえずこちらのサンプルで確認後投稿しています。
こちらではちゃんと表示されました。

もしかして配列数式になっていないのか?と思って配列数式にせずに
No.5の数式をSheet2のB3セルにこの画面からそのままコピー&ペーストし配列数式にせずに確認したら
1行だけしか表示されなかったので、配列数式云々の問題ではないような気がします。

実際の数式はご自身で手入力されたのでしょうか?
今一度No.5の数式をそのままコピー&ペーストし、配列数式にしたらどうなりますか?m(_ _)m
    • good
    • 1
この回答へのお礼

うーん・・・

ご返信ありがとうございます。

>とりあえずこちらのサンプルで確認後投稿しています。
>こちらではちゃんと表示されました。
そうですよね。教えていただきながら大変失礼いたしました。


>Sheet2のD2セルに拾い出ししたい「課」のデータをいれているのですよね?
何度も試しているのですが…やはり解決されず。

拾い出したい課にしています。
数式もご教授頂いた数式をコピペし、行数だけ実際の元データが違うので修正しました。
投稿したサンプルは3行目以降、実際のデータは5行目以降なので-4としました。
配列数式にすると、途中までは確かに該当する数字ですが
⚪︎と⚫︎がついていない数字も拾ってしまいます…。

何度も申し訳ありません…。

お礼日時:2020/07/09 18:45

No.5・6です。



たびたびごめんなさい。
前回のH3セルの数式が間違っていましたね。

>=IFERROR(INDEX(B$3:B$1000,SMALL(G$4:G$1000,ROW(A1))),"")

>=IFERROR(INDEX(B$3:B$1000,SMALL(G$3:G$1000,ROW(A1))),"")
でした。

アップした配置ではたまたまINDEXの範囲の最初が該当行でないためにちゃんと表示されていましたが
他の列と行数を合わせないと不具合が出てしまいます。

どうも失礼しました。m(_ _)m
    • good
    • 1
この回答へのお礼

うーん・・・

こんにちわ。

ご丁寧に修正のご連絡ありがとうございます。

こちらからもたびたび申し訳ありませんが、ご教授頂きたく投稿しようとしていたところでした。

本来の元データの最初のほうのデータがたまたま該当する数字だったので解決したと思っていたのですが、違う課の数字も拾ってしまいます。

質問最初に添付した元データの全ての人を抽出してしまいます。

何が原因か分からず、悩んでおります…。

何度も申し訳ありませんが、ご教授願います。

お礼日時:2020/07/09 17:07

No.5です。



数式の説明を!というコトですが、
補足の部分だけでは判りにくいと思います。

↓の画像のような配置にしてみました。
(前回の配列数式を分解しています)

G3セルに
=IF((D3=D$2)*((E3="○")+(E3="●")),ROW()-2,"")

という数式を入れています。
D3セルがD2と等しく、かつE3セルが「○」または「●」の場合のみ行番号から「-2」とした数値が表示されます。
これはINDEX関数で3行目以降を範囲指定しています。(B3セルがINDEX関数の1番目となります)
そのまま行番号を掛け合わせてしまうとINDEX関数の範囲の1番目が「3」になってしまいます。
すなわち範囲の何行目か?と求める場合、「-2」がないと求める行番号が二つずつずれてしまいます。

次にH3セルに
=IFERROR(INDEX(B$3:B$1000,SMALL(G$4:G$1000,ROW(A1))),"")

という数式を入れフィルハンドルで下へコピーしています。
これでG列に表示されている行番号の小さい順に表示されます。

数式内の「ROW(A1)」はSMALL関数の順位の部分にあたりますので、
数式を入れたセルが「1番目」 → 下へコピーすると「ROW(A2)」となり、2番目・3番目・・・

といった具合に順に表示されます。

前回の配列数式は作業列なしに上記の操作を一気に行っています。

この程度でよろしいでしょうかね。m(_ _)m
「条件に該当する人を抽出したい いつもご教」の回答画像6
    • good
    • 1
この回答へのお礼

ありがとう

ご返信が遅くなり申し訳ありません。
無事解決いたしました。

また、ご丁寧にわかりやすくご説明頂きありがとうございます。大変勉強になりました。

お礼日時:2020/07/09 05:53

こんにちは!



元データはSheet1にあるとします。

下側のシートのB3セルに
=IFERROR(INDEX(Sheet1!B$3:B$1000,SMALL(IF((Sheet1!$D$3:$D$1000=$D$2)*((Sheet1!$E$3:$E$1000="○")+(Sheet1!$E$3:$E$1000="●")),ROW($A$3:$A$1000)-2),ROW(A1))),"")

配列数式になりますので、Ctrl+Shift+Enterで確定!(←必須★)し
フィルハンドルで列・行方向にコピーしてみてください。

※ 数式内の掛け算は「AND」条件・足し算は「OR」条件になります。m(_ _)m
この回答への補足あり
    • good
    • 1
この回答へのお礼

ありがとうございます!
試してみます?

お礼日時:2020/07/07 16:05

A3に1


A4に2
A5に3
…と入力していきます。

あとはこのページにわかりやすく掲載されていますのでご参考に。↓
https://nyanto.jimdofree.com/%EF%BD%B4%EF%BD%B8% …
この回答への補足あり
    • good
    • 1
この回答へのお礼

ありがとうございます。
参考にさせていただきます。

お礼日時:2020/07/07 16:05

A列の3以降に番号を振ればindex+matchで表示することは可能ですが…


この入力だけで表示させるのは思いつきません。
    • good
    • 1
この回答へのお礼

はじめまして。
番号をどのよいにふればよいでしょうか?

お礼日時:2020/07/07 12:38

Excelバージョンは?

    • good
    • 1
この回答へのお礼

2010です。

お礼日時:2020/07/07 10:39

フィルターをかけてコピペだとダメですか?

    • good
    • 1
この回答へのお礼

申し訳ありません、課数がかなりあるので手作業でコピペは手間になり…。
ご質問させていただいた次第です。

お礼日時:2020/07/07 09:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!