エクセルの参照結果を空欄を詰めて表示させたい

このQ&Aのポイント
  • エクセルで参照結果を表示させる方法として、空欄を詰める方法があります。
  • 具体的な手順としては、参照式の前にIF関数を使い、条件に応じて空欄を表示するか参照結果を表示するかを判断します。
  • また、別のシートに日付を入力し、その日に該当する人の名前を表示するためには、VLOOKUP関数を使用します。
回答を見る
  • ベストアンサー

エクセルの参照結果を空欄を詰めて表示させたい

画像を添付しているのですが表示されているのかどうかよくわかりませんので、 下記にアップロードさせていただきました。「大きいサイズで見る」をクリックしてご参照いただけると幸いです。 http://yahoo.jp/box/W5RJJ9 貼付画像のように、 1. sheet1は3月1日から31日までの横軸が「あ」~「つ」の項目で構成された表が配置されています。縦軸には氏名があります。添付画像ではスペースの都合上3月2日の部分まで表示しております。 2. sheet1の「く」欄にはその日によって「当」が表示される人がいたりいなかったりします。表示される人は最大で9名です。この「当」の部分のセルには計算式が入っており、別のsheet3の内容次第で見かけ上「当」と表示されたり空欄となります。 3. sheet2のN2欄に3月1日から31日までの日付を入力します。 4. するとsheet2のB30:B38に指定された日付で「当」にあたる人のみ名前が順に表示されるようにしたいです。貼付画像の例では3月1日なら「AAA」「BBB」「EEE」「GGG」がsheet2のB30:B33に表示され、3月2日なら「BBB」「CCC」「EEE」と表示されるようになります。 私には難しくてこれを実現することができません。なお、マクロはさっぱり分かりませんのでマクロを使わない方法でお願い致します。よろしくお願いします。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

N02の回答者ですが、私の回答も行がずれていますね。 日付はSheet1の3行目に入力されていてデータは7行目からなので、以下のように修正してください。 =INDEX(Sheet1!$B:$B,SMALL(INDEX((INDEX(Sheet1!$7:$100,0,MATCH($N$1,Sheet1!$3:$3,0)+8)<>"当")*1000+ROW($7:$100),),ROW(1:1)))&""

mikadoshashinka
質問者

お礼

素早いご回答誠にありがとうございました。 こんなのが簡単に出来てしまうのが本当に羨ましいです。 心より感謝しております。ありがとうございました。

その他の回答 (3)

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

No.1です。 たびたびごめんなさい。 前回の数式は1行ずれていました。 Sheet2のA30セルの数式を =IF(N$1="","",IFERROR(INDEX(Sheet1!B$7:B$23,SMALL(IF(OFFSET(Sheet1!A$7:A$23,,MATCH(N$1,Sheet1!$3:$3,0)+7,,1)="当",ROW(A$1:A$17)),ROW(A1))),"")) に訂正してください。 ※ 前回同様、配列数式です。m(_ _)m

mikadoshashinka
質問者

お礼

再度のご投稿誠にありがとうございました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

例示のレイアウトならSheet2に以下の式を入力して下方向にオートフィルしてください。 =INDEX(Sheet1!$B:$B,SMALL(INDEX((INDEX(Sheet1!$6:$100,0,MATCH($N$1,Sheet1!$4:$4,0)+8)<>"当")*1000+ROW($6:$100),),ROW(1:1)))&""

mikadoshashinka
質問者

お礼

ご回答誠にありがとうございました。 #N/Aと出てしまうのですが、私の環境の問題でしょうか???

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

こんばんは! アップされている画像を拝見しました。 質問では >3. sheet2のN2欄に3月1日から31日までの日付を入力します。 となっていますが、画像ではN1セルに日付を入力するようですので、 N1に表示したい日付を入力すると表示するようにしてみました。 今回は「く」限定のようですので・・・ Sheet2のA30セルに =IF(N$1="","",IFERROR(INDEX(Sheet1!B$6:B$22,SMALL(IF(OFFSET(Sheet1!A$6:A$22,,MATCH(N$1,Sheet1!$2:$2,0)+7,,1)="当",ROW(A$1:A$17)),ROW(A1))),"")) これは配列数式になりますので、Shift+Ctrl+Enterで確定! この画面からコピー&ペーストする場合は 上記数式をドラッグ&コピー → Sheet2のA30セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま) Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後の{ }マークが入り配列数式になります。 このA30セルをオートフィルで下へコピーしてみてください。 ※ 数式の細かい説明は割愛します。m(_ _)m

mikadoshashinka
質問者

お礼

素早いご回答誠にありがとうございました。 こんなのが簡単に出来てしまうのが本当に羨ましいです。 ありがとうございました。

関連するQ&A

  • エクセルで出来るか教えてください!

    例えばシート1とシート2に下の文字があるとします。 シート1↓ 日付  1月 1日   CCC 2日 3日   AAA 4日   BBB 非番   EEE シート2↓      1月   2月   3月 AAA   3日   3日   4日 BBB   4日   1日   1日 CCC   1日   4日   3日 DDD   休    2日   3日 EEE   非番 FFF            非番 シート2には勤務体制の表を記入。シート1には今月の勤務体制をシート2のデータから表示さたいです。 例えばシート1にある1月を「2月」と記入すると、英語で書かれた名前を自動的に変化させたいのですが、これをエクセルで作れますか? どなたか分かる方教えてください。お願いします。

  • Excelシートの自動コピーでマクロを使いたい

    表題通り、Excelシートの自動コピーをマクロを使って行いたいのですが、 マクロやVBAの知識が全くないため、どなたかコードを教えていただけないでしょうか。 まず今現在、B1セルに9月1日と日付を入れ、シート名を1日としたものがあります。 これを自動で複製して、B1セルの日付を9月2日 9月3日… シート名を2日 3日…となるように、日毎ごとの一ヶ月分のシートを作り ひとつのbookにしたいと考えております。 また、その際に、B1セルとシート名の日付が日曜・祭日に当たる場合、 シート名に色を付けたいと思っています。 (因みにB1セルの日付はシリアル値で入れていて、 書式で○月○日となるように表示していて、日付が日曜・祭日に当たる場合は 赤文字になるよう、別シートに祝日リストも作って 条件付き書式で設定してあります。) Excelの関数は使えても、マクロは全く分からないので どうかよろしくお願い致します。

  • Excel VBA 条件指定による別シートの参照について

    下記のように、Excelでマクロを組みたいのですが 組み方がわかりません。 この組方さえわかれば、仕事の便利なツールがいろいろ 作れますので、ご協力いただけませんでしょうか? シートA、シートBがある シートA 日時  曜日 名前 時間  内容  TEL  完了日時 7月1日 水  aaa  終日  正常  無し         bbb  終日  正常  無し         ccc  終日  正常  無し 7月2日 木  aaa  終日  正常  無し         bbb  終日  正常  無し         ccc  終日  正常  無し 7月3日 金  aaa  終日  正常  無し         bbb  終日  正常  無し         ccc  終日  正常  無し シートB 5月2日 木  aaa  11:00  エラー 有り 11:30 7月2日 木  bbb  11:00  エラー 有り 11:30 シートAにマクロをくみ、シートBを参照して、シートA'を作成したい。 (シートAがシートA'のようになればよく、新規にファイルを作成したり リネームする必要は無い) シートA' 日時  曜日 名前 時間  内容  TEL  完了日時 7月1日 水  aaa  終日  正常  無し         bbb  終日  正常  無し         ccc  終日  正常  無し 7月2日 木  aaa  終日  正常  無し         bbb  11:00 エラー 有り 11:30         ccc  終日  正常  無し 7月3日 金  aaa  終日  正常  無し         bbb  終日  正常  無し         ccc  終日  正常  無し どのようにマクロをくめばよいですか? 数ヶ月前から困っています。 よろしくお願いいたします。

  • Excelシートの統合するマクロなどがありましたらお教えください。

    各支店(約200)からExcelシートで送信されてくる報告内容を別のシートに一気にまとめるマクロ等はないでしょうか?ご存知の方よろしくお願いします。 (例) A支店  項目  aaa    bbb    ccc    ddd    eee        10    20     30    0     0         8    8      0     0      0               以下約300件 B支店  項目  aaa    bbb    ccc    ddd    eee        11    22     33    0     0         9    9      0     0      0               以下約300件      別シートに 項目  aaa    bbb    ccc    ddd    eee        10    20     30    0     0         8    8      0     0      0        11    22     33    0     0         9    9      0     0      0                   以下省略           よろしくお願いします       

  • 【エクセル】名称を参照し画像を表示する

    いつも大変お世話になっております。 前回【エクセル】元データシートよりマクロで表を複数作成の件、 ご教示いただき、ありがとうございました。 元データシートよりマクロで表を複数作成した後、 各シートごとB1の名称を参照し、それに一致する画像をB5に表示することを 考えています。 いろいろ試してみたもののうまくいかず、質問させていただきました。 よろしくお願いいたします。

  • Excel(エクセル)の質問 2つの条件

    Excel(エクセル)の質問です。 Sheet1には ・名前 ・日付 ・内容 が記載されており、 Sheet2に ・名前 に対する最新の日付の内容を表示したいのです。 □Sheet1の入力状態 名前,日付,内容 Aさん,1月1日,電話しました Bさん,1月1日,メールしました Cさん,1月1日,電話しました Aさん,1月2日,FAXしました Bさん,1月2日,電話しました Bさん,1月3日,電話しました Cさん,1月3日,訪問しました □Sheet2 名前,最新の進捗 Aさん, ~ ここ ~ Bさん, ~ ここ ~ Cさん, ~ ここ ~

  • エクセルでSheet1の表を参照して条件に合った値を返したい

    エクセルでSheet1に   A   B   C 1 1月1日 10時 10 2 1月1日 12時 25 3 1月1日 14時 17 4 1月2日 10時 15 5 1月2日 12時 23 6 1月2日 14時 19 ・ ・ ・ というような表があります。 Sheet2に   A   B   C  D  1 日付  10時 12時 14時  2 1月1日  3 1月2日  ・ ・ ・ の表があり、Sheet2のB2からD3にSheet1の表を参照して 条件に合うC列の値を返したいのです。 (例えばSheet2のB2には、1月1日の10時なのでSheet1C列の10が入る) VLOOKUP関数等を使って試してみましたがうまくいきません。 ご教授お願い致します。

  • エクセルでのTODAY関数

     TODAY関数は、そのファイルを読み込んだ日を自動的に表示させるものだと思うのですが、たとえば、平成19年1月21日にファイルを開いたとすると、その日付が設定した箇所に自動的に入力されます。  したがって、同じファイルを後日開くとその日付は、その後日、たとえb、平成19年2月1日に開くとその日付が入力されてしまいます。  たとえば、シートのある箇所の設定を シート1 契約書の契約日として、そのファイル読み込み日(ファイルを開いた日)を自動入力。ただし、日付の更新はしない。上記読み込み日に固定。 シート2 報告書の契約日として、シート1の日付を自動入力。入力日はシート1の入力日と同じこともあれば、違う日のこともある。 というような設定にするには、TODAY関数をどうカスタマイズすればいいのでしょうか。 表計算、関数、マクロはあまり得意ではありません。特にマクロはやったことがありません。よろしくお願いします。

  • エクセル 最新の進捗を表示させたい

    エクセルで、進捗入力の専用シートと、最新のデータだけ見れるシートを作成したいと思っています。 ・進捗入力のシート 項番 名前 入力日 内容 備考 1 Aさん 10月1日 電話しました なし 2 Bさん 10月1日 電話しました なし 3 Aさん 10月2日 FAXしました 明日電話する必要あり 4 Cさん 10月2日 電話しました 留守なので明日電話する必要あり 5 Aさん 10月3日 電話しました FAX受け取ったとのこと 6 Bさん 10月3日 訪問しました 怒っていました 7 Cさん 10月3日 電話しました なし ・最新のシート 名前 最新日付 内容 備考 Aさん Bさん Cさん ~~~~ このような感じです。 最新の日付は表示できているのですが、内容等を表示できません。 よろしくお願い致します。

  • ■マクロを使い別のワークブック&シートを参照して表示させる

    ■マクロを使い別のワークブック&シートを参照して表示させる AとBのワークブックがあり、集計をしてワークブックBシートaに( ) の中身を入れたい場合マクロで記述するにはどうしたらいいでしょうか ? ワークブックA(出荷部門報告) No. 商品番号 注文数 出荷完了(1:完了、0:未完) 1  AAA   50   1 2  BBB   30   0 3  CCC   10   1 4 DDD 20 0 ワークブックB シートa(管理) 未出荷商品番号 残必要数 必要日数 (BBB)    (15)  (1) (DDD) (19)  (19) シートb(生産部門報告) 商品番号 生産完了  BBB 10 BBB 5 CCC 10 DDD 1 シートc(調達部門報告) 商品番号 生産必要日数/1 AAA   25 BBB   30 CCC   3 DDD   1 <ワークブックBシートaに入るのは出荷未完(0)のみ> <シートb、cは追加(変更)されていきます> 質問で意味が分からない部分がありましたら、追加いたしますのでよろ しくお願い致します。

専門家に質問してみよう