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

エクセルの関数についての質問です。
色々調べましたがなかなか上手くいかず、お知恵拝借できますと幸いです。

<前提>
◆1つ目のシートに、名前、書類の送付日、返送日等の情報がある

<やりたいこと>
◆別のシートに、返送日がブランクのものをピックアップし、表を作成したい
(1つ目のシートに50人分の名前があり、そのうち3人が送付済・返送待ちである場合、該当の3人の名前、送付日、返送日(ブランク)を別のシートで抽出し、リスト化したい)

なお、単純にオートフィルタで返送日がブランクのものを選び、リストを整えればいいのですが、この場合1つ目のシートの情報はシステムからエクセルに落としたデータで、名前や送付日の他にもたくさんの項目があります。
そのため、毎回表を整える際に不要な項目(列)を適宜削除せねばなりません。
そうではなく、1つ目のシートにデータを貼り付けさえすれば、2つ目のシートに該当分の該当セルがピックアップされるような関数を知りたく存じます。

IF関数やAND関数を使うのかと考えましたが、道半ばで分からなくなってしまいました。ご教示いただけますと幸いです。
また、上記説明にて分かりづらい点がありましたらご指摘願います。

よろしくお願いいたします。

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

  • tom04様、mike_g様

    早速アイデア頂戴し誠にありがとうございます。
    当方にて検証しており連絡が遅れ申し訳ございません。

    tom04様の関数を用いてみましたが、エラー(#N/A)となってしまい、解決の糸口が見つけられていません。知識不足で本当に恐縮ですが、実際の配置の画像を添付させていただきます。

    sheet1
    ・(列)A〜X列まで項目あり
    ・(行)15行目以降に情報あり
    ・T列に日付が入っていて、U列に日付が入っていないものを抽出したい
    ・T列にもU列にも日付が入っていないものは抽出不要(←ここは可能であればなので、抽出されても構いません)

    sheet2
    ・B〜H列に、sheet1の一部の列(FFFやAAAはsheet1に該当)の情報を表示させたい

    不足点ありましたらご教示ください。
    色々と申し訳ございませんが、お知恵拝借したく、何卒よろしくお願いいたします。

    「エクセル 条件を満たした場合に該当分を抽」の補足画像1
      補足日時:2017/09/04 20:19
  • 度々申し訳ございません。
    画像が見えにくいため、sheet1とsheet2でそれぞれ添付いたします。

    sheet1
    ※見やすくするため、途中一部列を非表示にしております。

    「エクセル 条件を満たした場合に該当分を抽」の補足画像2
      補足日時:2017/09/04 20:26
  • あまり改善になっておらず恐縮ですが、sheet2です

    「エクセル 条件を満たした場合に該当分を抽」の補足画像3
      補足日時:2017/09/04 20:31

A 回答 (4件)

こんにちは!



具体的な配置が判らないのでやり方だけ・・・
↓の画像のように元データはSheet1にあり、Sheet2に表示するとします。

Sheet2のA2セルに
=INDEX(Sheet1!A$1:A$100,SMALL(IF(Sheet1!$C$1:$C$100="",ROW($A$1:$A$100)),ROW(A1)))

配列数式なのでCtrl+Shift+Enterで確定! → A2セルのフィルハンドルで列・行方向にコピー!
日付列の表示形式を好みの表示形式にします。

ただこれでは空白セルに「0」が表示されてしまいますので、Sheet2をアクティブな状態にし
メニュー → ファイル → オプション → 詳細設定 → 「次のシートで作業するときの表示設定」
の「ゼロ値のセルにゼロを表示する」のチェックを外しておきます。

※ 画像ではすべての項目を表示するようにしていますが、Sheet2の1行目に必要項目だけを入力し
それだけを表示したい場合は
(Sheet1には仮にZ列までデータがあるとします)
=INDEX(Sheet1!$A$1:$Z$100,SMALL(IF(Sheet1!$C$1:$C$100="",ROW($A$1:$A$100)),ROW(A1)),MATCH(A$1,Sheet1!$1:$1,0))

こちらも配列数式です。

としてみてください。m(_ _)m
「エクセル 条件を満たした場合に該当分を抽」の回答画像1
    • good
    • 1

採用却下になるかも知れないので、詳細抜きで、添付図のような[フィルタオプションの設定](Alt+AQ)は如何かと。

「エクセル 条件を満たした場合に該当分を抽」の回答画像2
    • good
    • 1
この回答へのお礼

mike_g様
先日は早々のご回答誠にありがとうございました。
当方の理解・知識不足でお礼が遅くなり恐縮ですが、大変助かりました。

お礼日時:2017/09/04 23:30

No.1です。



画像通りに配置だとします。
Sheet2の7行目必要項目は入力済みだという前提です。

Sheet2のB8セルに
=IFERROR(INDEX(Sheet1!$A$15:$X$1000,SMALL(IF((Sheet1!$T$15:$T$1000>0)*(Sheet1!$U$15:$U$1000=""),ROW($B$15:$B$1000)-14),ROW(A1)),MATCH(B$7,Sheet1!$A$14:$X$14,0)),"")

前回同様配列数式なので、Ctrl+Shift+Enterで確定!
B8セルのフィルハンドルで列・行方向にコピー!
最後に日付列の表示形式を整えて完了!

前回も記載したように参照先が空白の場合「0」が表示されます。
Excelのオプションから「ゼロ値のセルに・・・」のチェックを外してください。

尚、チェックを外すと表内に「0」を表示しなけばならないセルも空白になります。
その場合はかなり長くなりますが、数式で処理する必要があると思います。

=IFERROR(IF(INDEX(Sheet1!$A$15:$X$1000,SMALL(IF((Sheet1!$T$15:$T$1000>0)*(Sheet1!$U$15:$U$1000=""),ROW($B$15:$B$1000)-14),ROW(A1)),MATCH(B$7,Sheet1!$A$14:$X$14,0))="","",INDEX(Sheet1!$A$15:$X$1000,SMALL(IF((Sheet1!$T$15:$T$1000>0)*(Sheet1!$U$15:$U$1000=""),ROW($B$15:$B$1000)-14),ROW(A1)),MATCH(B$7,Sheet1!$A$14:$X$14,0))),"")

同じく配列数式です。

といった感じになると思います。m(_ _)m
    • good
    • 1
この回答へのお礼

助かりました

tom04様

早々に、そして的確にアドバイスいただきありがとうございます!!!!
無事、リスト作成できました。
これでかなりの効率化が図れます。大変助かりました。
本当にありがとうございました。

お礼日時:2017/09/04 23:24

No.1・3です。



質問文を読み返してみると・・・
50人分のデータしかないのですね?

配列数式はPCにかなりの負担をかけますので、極力範囲は狭くした方が良いです。
前回の数式内の「1000」の部分をすべて「100」に置き換えてください。

※ 実際はデータの最終行までの指定で良いのですが、
中途半端な行数だと数式の行合わせが逆に面倒になります。m(_ _)m
    • good
    • 1
この回答へのお礼

ご丁寧に本当にありがとうございます。
当方にとってEXCELはまだまだ奥深いです・・・
大変勉強になりました。

お礼日時:2017/09/04 23:28

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