- 締切済み
チェックボックスについて
チェックボックスについて シート1 A B・・・・・ 1 商品名1 商品名2 2 重量1 重量2 3 賞味期限1 賞味期限2 などが入っている商品紹介書があります。商品数50以上 これを元にチェックボックスのシート(シート2)を作成して、選択した商品だけを さらに別シート(シート3)にA4で4つぐらい並べて表示したいと考えています。 シート2 A 1 商品1 □←チェックボックス 2 商品2 □ 3 商品3 □ 4 5 シート3 A B 1 商品名1 商品名2 2 重量1 重量2 3 賞味期限1 賞味期限2 4 5 商品名3 商品名4 6 重量3 重量4 7 賞味期限3 賞味期限4 この時に、2つしか選択しなければ、左上から右に2つといったように つめるような形式にしたいです。 5つ選んだら2枚目に1つだけ移るかたちです。 なんか良い方法があればご教授お願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
質問者の技量(特にVBAのプログラムがが出来るか)による。 VBAを使わないでコントロールを使うには、固定的で、1つといったものしか出来ない(複数ではものすごく複雑になる)と思う。 チェックボックスを使うというのも、かっこよいが、思いつきだと思う。リストボックスの方が扱いやすい。1つのリストボックスの複数アイテムを関連づけるのにセル範囲が指定できる。チェックボックスは1つづつ指定となる。 ただしリストボックスでもMultiSelectになるとVBAを使わないと捉えるのが難しかろう。 選択されたもののシートへの表示は、選択された項目が捉えられれば(決れば)MATCH関数やVLOOKUP関数なんかで割り出せると思う。 チェックボックス選択ーー>選択したものをシートのセルに反映ーー>選択されなければFALSEーー>FALSEなら空白、ないしは拾わない(下記のやり方では)。TRUEのものを拾う(抜き出しする) ーーー 商品の項目を列方向に並べるのは、エクセルに慣れてないものがやることのように思う。 それで行方向の例にして説明する。 例データ Sheet1 a1:E4 A列 B列 C列 D列 E列 商品 重量 期限 選択 TRUE個数 豆腐 30 6月20日 TRUE 1 あぶらあげ 100 6月15日 FALSE 1 納豆 100 6月25日 TRUE 2 E列の関数E2に=COUNTIF($D$2:D2,TRUE) D列はLinkedCell設定で反映される値。 ーーー Sheet2 CheckBox1 CheckBox2 CheckBox3 を設ける(貼り付ける) 各々のプロパティのLinkedCellにSheet1!D2、D3,D4をそれぞれ指定。 ーー Sheet3 豆腐 30 2010/6/20 納豆 100 2010/6/25 #N/A #N/A #N/A A2の式 =INDEX(Sheet1!$A$2:$C$100,MATCH(ROW()-1,Sheet1!$E$2:$E$100,0),COLUMN()) この式をC2まで式複写 A2:C2を下方向に式複写 上記はimogasi方式。Googleででも「imogasi方式」で照会すれば、沢山の抜き出し問題で私の回答した質問が出てくる。もちろん他の回答者の他の方法も載っている。 上記Sheet3の#N/A(該当件数数を超えた行の分)を出さない式も、そちらに書いているので省略する。
- KURUMITO
- ベストアンサー率42% (1835/4283)
これからエクセルを使いこなそうとしているのでしたら一つの件数について1行を使うことにすることです。見掛け上良くしようとすることは慎むべきです。一つの行でしたら簡単なことをやたら複雑にしているだけです。 回答が寄せられないのもそういったことが原因かもしれませんよ。