[[20130326162428]] 『ドロップダウンを別のシートで連動させたい』(しずく) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

 『ドロップダウンを別のシートで連動させたい』(しずく)

 いつもお世話さまです。

 しート1に合計請求書の表紙があります。
 ここにドロップダウンを作成して、宛先を変更できるようにしました。

 シート2は内訳明細書で、それぞれ品名と単価の列があります。
 この品名もドロップダウンで表示させたいです。
 ただし、品名は宛先ごとに違うので、別のシート3に○○商事品名リストを
 作成しています。

 シート1の宛先を変更したら、シート2の品名のドロップダウンも
 それに連動させて変更することができますでしょうか?

 8社顧客があるので、会社によって品名のよびかたが違うので.....

 わかりにくくてすみません。。。よろしくお願いします。
 ちなみにエクセル2007です。

 1.Sheet3のB1セルから右に8商社の名前を書き、
   その下に商品リストが作ってあるものとします。

 2.Sheet1の宛先はA1セルに入力されるものとします。

 3.Sheet2の品名の入力規則に以下の設定をしてください。

 (1)入力の種類 → リスト

 (2)元の値ボックスに
         ↓
 =OFFSET(Sheet3!$A$1,1,MATCH(Sheet1!$A$1,Sheet3!$B$1:$I$1,0),COUNTA(OFFSET(Sheet3!$A$1,1,MATCH(Sheet1!$A$1,Sheet3!$B$1:$I$1,0),150)))

 <Sheet1>        <Sheet2>  
  行  ____A____  _B_      行  _A_  _B_  __C__  __D__ 
   1  長友商事             1            品名   単価  
   2                       2            長商2        
                           3            長商4       

 <Sheet3>
  行 _A_ ___ B ___ ___ C ___ __D__ __E__ __F__ __G__ __H__ __I__
   1     本田商事  長友商事  ○商3 ○商4 ○商5 ○商6 ○商7 ○商8
   2     本商1     長商1     ○商1 商4品 商5品 商6品 商7品 商8品
   3     本商2     長商2     ○商2                              
   4     本商3     長商3                                        
   5               長商4                                        
   6               長商5                                        

 (半平太) 2013/03/26(Tue) 22:57

 半平太様

 今作成中なのですが、元の値ボックスには直接OFFSET関数を入力しないといけないですか?
 上記の数式をコピペして貼りつけているのですが、
 「条件データの入力規則に他のワークシートまたは、ブックへの参照は使用できません」
 となってしまいます....

 しずく

 >「条件データの入力規則に他のワークシートまたは、ブックへの参照は使用できません」

 すみません。当方、XL2010 でやっていました。 m(__)m

 以下、XL2007の方法です。

 1.Sheet3のB1セルから右に8商社の名前を書き、その下に商品リストが作ってあるものとします。
    (ここは前回と同じです)

 2-1 Sheet1の宛先セルのクリックしして、名前ボックスに「宛先」と入力してください。(数式バーの左端にあるセルアドレスが表示される処です)
      これで宛先セルは、「宛先」と云う名前定義がされたことになります。

      ※この処置で、前回の制約「A1セルに宛先を入れる」は無くなります。(宛先は何処のセルでもOKです。但し一個所のみ))

 2−2 Sheet3のA1:I1を一括選択して、名前ボックスに「BASE」と入力してください。
       これで当該範囲(9セル)は、「BASE」と云う名前定義がされたことになります。

      ※余談ですが、「BASE」は宛先セルの入力規則用として再利用出来ます。

 3.Sheet2の品名の入力規則に以下の設定をしてください。
   (1)入力の種類 → リスト
   (2)元の値ボックスに↓
 =OFFSET(BASE,1,MATCH(宛先,BASE,0)-1,COUNTA(OFFSET(BASE,1,MATCH(宛先,BASE,0)-1,150,1)),1)

 (半平太) 2013/03/27(Wed) 11:40

 半平太さん!!!!!
 できました!!!
 すごいです(*^_^*)♪♪
 ほんとにどうもありがとうございます!!!!
 うれしいです!!

 しずく

 すみません...
 ここに続きを書いていいのかわかりませんが、
 Sheet3の8商社の名前と品名リストですが、そこには

 <Sheet3>
  行 _A ___ B ___   __ C __  __D__  __E__   __F__  __G__  __H__ __I__
   1     本田商事           長友商事            山田商事
   2     本商1       2500   個  長商1   3000    式     山商1        
   3     本商2       3000   式  長商2    500  本     山商2                                    
   4     本商3     500   個    長商3    400  個     山商3                                   
   5     本商4     2000     本    長商4   1000  個     山商4                                   
   6                        長商5 

 <Sheet2>
  行 _A ___ B ___   __ C __  __D__  __E__   __F__  __G__  __H__ __I__
   1     品名     数量      単価  金額
   2   本商4    2    本     2000   4000

 Sheet2のD列とE列にB列で商品名を選んだ時点で、Sheet3で作成したBASEのデータを抽出したいです。
 今までは、8社別々に請求書をそれぞれに作っていたのでSheet3のリストが1社しかなく
 VLOOKUPででるようにしていました。
 たびたび申し訳ありませんが教えてください。
 すみません・・・・

 C列はそのつど入力で、F列は単純にC*Fの計算式を入れています


 1.Ctrlキーを押しながら、F3キーを押して「名前定義」ダイアログを出し、
   BASEの参照範囲を広げてください。

   =Sheet3!$A$1:$I$1 → =Sheet3!$A$1:$Y$1 (つまり右端をY列へ変更する)

 2.次に、単位・単価の数式を以下の様にしてください。

 (1) D2セル =IF(B2="","",VLOOKUP(B2,OFFSET(BASE,1,MATCH(宛先,BASE,0)-1,150,3),3,FALSE))
 (2) E2セル =IF(B2="","",VLOOKUP(B2,OFFSET(BASE,1,MATCH(宛先,BASE,0)-1,150,2),2,FALSE))

  それぞれ下にフィルコピー

 <Sheet2>結果図

  行  __B__  __C__  _D_  __E__  __F__
   1  品名   数量        単価   金額 
   2  本商1         個   2,500       
   3  本商4         本   2,000       

 (半平太) 2013/03/27(Wed) 13:43

 半平太さん
 できました!!
 ほんとにほんとにほんとにありがとうございました(*^_^*)

 しずく

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.