- ベストアンサー
チェックボックスに連動した他シートの参照
- S1シートの該当のチェックボックスにチェックを入れるとその行のデータがS2シートに表示される。
- B、D列のデータがS2シートのA,B列に表示される。
- チェックボックス1と3にチェックするとS2シートのA列に「い」、B列に「え」が表示される。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> Sheet1!$E$1:$E$4=TRUEのときに、ROW($E$1:$E$4)を返すということだと思うの > ですが、E1,E3がTRUEのときは何が返ってくるのでしょうか? IF関数の中は、 $E$1:$E$4の中で"TRUE"な場合はその行番号を、"FALSE"なら""を返す という意味ですので、 E1,E3がTRUE(E2,E4がFalse)のときは、1,"",3,"" という配列が返ります。 IF関数の中が 1,"",3,"" という結果でしたので、それを囲むSMALL関数の意味は、 1,"",3,"" の中で、小さいほうから"数式の入力された行番号"に相当する順位の データを求めることになり、一行目には1、二行目には3、三行目以下には""という 行番号が表示されます。 ...ROW()),2 の2は列番号です。 つまり、その外のADDRESS関数を含めて考えますと、ADDRESS(1,2)、ADDRESS(3,2)、 以下データ無しでエラー、になります。 .......ごめんなさい。かえって難しくなってしまったかも。 蛇足ですが、 =INDIRECT(ADDRESS(行番号,列番号,,,"シート名")) は、他シートのデータを参照するための関数です。 普通でしたら、=Sheet3!B7 の形で済むのですが、行や列の番号を計算で求めなく てはならないときなどにはこの形を使います。
その他の回答 (1)
- misatoanna
- ベストアンサー率58% (528/896)
まず、Sheet1のチェックボックスに、コントロールの書式設定でそれぞれリンク するセルを設定します。 リンクセルを、仮に、E1にあるチェックボックスはE1に、E1のチェックボックスは E2に、というように E1:E4に設定して、セルの文字色を白にしておきます。 Sheet2のA1セルに、 =INDIRECT(ADDRESS(SMALL(IF(Sheet1!$E$1:$E$4=TRUE,ROW($E$1:$E$4),""),ROW()),2,,,"Sheet1")) と入力して、[Ctrl]と[Shift]を押しながら[Enter]します。 また、Sheet2のB1セルには、 =INDIRECT(ADDRESS(SMALL(IF(Sheet1!$E$1:$E$4=TRUE,ROW($E$1:$E$4),""),ROW()),4,,,"Sheet1")) と入力して、[Ctrl]と[Shift]を押しながら[Enter]します。 さらに、Sheet2のA1:B1を選択して、4行目までドラッグコピーします。 データのないセルには #NUM が表示されますが、Sheet2のA1:B4に、数式がエラー なら白文字にするような条件付書式を設定されればよいでしょう。
補足
すばらしいですね。 一応、内容を理解しておきたいので教えてください。 (IF(Sheet1!$E$1:$E$4=TRUE,ROW($E$1:$E$4),"")は、 Sheet1!$E$1:$E$4=TRUEのときに、ROW($E$1:$E$4)を返すということだと思うのですが、E1,E3がTRUEのときは 何が返ってくるのでしょうか?
お礼
大変よくわかりました。 ありがとうございました。