重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

【EXCEL教えてください!】
とあるイベント事業で使用したいです。
シート1には集計表として
会社名 名前 参加(1or0)

シート2には シート1で参加(1) になった人のみ表示して配布用の名簿を作る用

こんな感じで値をシートごとに連動できますか?
教えてください!!

「【EXCEL教えてください!】 とあるイ」の質問画像

A 回答 (5件)

こんにちは!



横からお邪魔します。
>自動的に集計表に1がつくひとが
>配布用名簿にも反映されると
>楽だと思いました。

というコトなので一例です。

↓の画像のように元データはSheet1にあり、Sheet2に表示するとします。

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

配列数隙なので、Ctrl+Shift+Enterで確定!(←必須★)し
フィルハンドルで列・行方向にコピーしています。m(_ _)m
「【EXCEL教えてください!】 とあるイ」の回答画像5
    • good
    • 0

#1です。


確かにオートフィルタで十分実現できますね。
その度だと面倒ですが、、(VBAも)ですね。

この回答前でVBAを考えていたので、、頭がVBAになっていました。

一応、関数の場合を書いときますね。

条件は、Sheet1のC列の値が1なら参加です。
Sheet2(参加者リスト)のA1セルに

=IF(COUNTIF(Sheet1!$C:$C,1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$200=1)*ROW(Sheet1!$C$1:$C$200),),COUNTIF(Sheet1!$C:$C,1)-ROW(A1)+1)),"")

をコピペしてください。
列、行 共にフィルハンドルでコピーします。(取り敢えず、200行までです)

見出し行などを入れる場合は適時変更してくださいね。
    • good
    • 0

お書きの内容だとNo.2さんの回答内容で充分対応可能ですね。


元シートでオートフィルタしてコピペとか出席者だけ並べ替えで上にもってくるとか他にもいくらでも方法はあると思います。
本当はもっと込み入った内容なのでは?
    • good
    • 0
この回答へのお礼

あまりエクセル詳しくないのですが、

名簿を作成おわったら
いきなり追加の参加者が出る際、
名簿に挿入をして
人数を増やしているのですが、

自動的に集計表に1がつくひとが
配布用名簿にも反映されると
楽だと思いました。

ご回答ありがとうございます!

お礼日時:2020/01/26 10:45

シートを複製して、「参加」にオートフィルタを掛ける。


それで良いんじゃないかな。
    • good
    • 0

こんばんは、関数が良いかもですが、VBAで


標準モジュールに
走り書きのような感じですみません。
各セル列は左からA~C 行は見出しなし1行目からです。1が参加
走り書きなので検証していませんので取り敢えずOn Error Resume Next
たぶん大丈夫かと

Sub sample()
Dim i As Long, j As Long, MaxRow As Long
On Error Resume Next
MaxRow = Sheets("Sheet1").Cells(Rows.Count, 3).End(xlUp).Row
j = 1
For i = 1 To MaxRow
If Sheets("Sheet1").Cells(i, 3) = 1 Then
Sheets("Sheet2").Range("A" & j & ":B" & j).Value = Sheets("Sheet1").Range("A" & i & ":B" & i).Value
j = j + 1
End If
Next
End Sub
    • good
    • 0

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