Excel 入力規則のリストの連動について
未読分:3件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#3 2015年2月10日(火)22時38分 From: mikuama | 返事 削除 変更 |
下図のように、Sheet2のE列に1,2,3,…と入力して、 Sheet2のF1に =Sheet1!A1 Sheet2のF2に =IF($A2=F$1,$D2,"") と入力します。 F2を下に必要なだけオートフィルします。 そして、Sheet1のリストを表示させたい、B1にデータの入力規則、 リスト、元の値で、 =OFFSET(Sheet2!F1,IFERROR(VLOOKUP($A$1,Sheet2!$A$2:$E$200,5,FALSE),0),0,IF(COUNTIF(Sheet2!$A:$A,$A$1)=0,1,COUNTIF(Sheet2!$A:$A,$A$1))) と、入力すれば配列を使わずに、出来ます。 さらに、E列とF列をオートフィルするだけで、 何千行のデータにでも対応できます。 よろしくお願いいたします。 |
Message#2 2015年2月10日(火)22時37分 From: jaljal | 返事 削除 変更 |
Sheet2のF1セル =Sheet1!A1 Sheet2のG1セル =IFERROR(INDEX(D$2:D$1001,SMALL(IF(A$2:A$1001=F$1,ROW(A$1:A$1000)),ROW(A1))),"") G1セルから下方向にフィルコピー 名前の定義で 名前 範囲 参照範囲 =OFFSET(Sheet2!$G$1,0,0,SUMPRODUCT((Sheet2!$G$1:$G$1000<>"")*1)) Sheet1のB1セルの入力規則のリストで元の範囲を =範囲 作業列を使う形となりますが、これでご希望の操作が可能だと思います。ちなみに上記関数では1000件まで対応しています。 |
Message#1 2015年2月10日(火)22時15分 From: VBA分からない | 返事 削除 変更 |
Excel 入力規則のリストの連動について質問です。 Sheet2のA列にメーカー名、D列に品番が入っています。 (B、C列はリスト用の作業列) Sheet1のA1にメーカー名のリストを作成し、そのリストからメーカーを選ぶと、 Sheet1のB1の品番リストに選んだメーカーの商品のみリストに表示されるようにしたいです。 例)A1で東芝を選択すると、B1のリストにAAAA〜EEEEが表示されるようにする。 名前の定義でメーカー名ごとに分けると手っ取り早いのですが、Sheet2に商品を今後追加していくため、名前の定義はできれば使いたくないです。(範囲が可変するため) VBA、マクロは使わず、関数のみで表現は可能でしょうか? ご回答よろしくお願いします。 http://www.dotup.org/uploda/www.dotup.org157340.xlsx.html pass:0000 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降