- ベストアンサー
Excelで子供の名前を行を分けて呼び出したい
- ExcelのVLOOKUPを使用して子供の名前を行を分けて呼び出す方法について教えてください。
- Excel2003を使用していますが、子供の名前を表示するための方法が分かりません。どのように設定すれば良いですか?
- Excelの通し番号と世帯主の名前を表示することはできましたが、それを利用して子供の名前を表示する方法が分からないです。教えていただけますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Sheet3のリストのデータが業者ごとに一塊になって並べられている必要が無く(行が飛び飛びとなっていたり、順不同に並んでいても良い)、また、作業列も使用しない方法です。 但し、Sheet3のリスト中に、商品コード等の「その列中には、同じ値が複数回登場する事はあり得ないデータ」が入力されている列が、少なくとも1列は必要となります。(もし、重複する事のないデータが入力されている列が、1つも無かった場合には、商品ごとにも連番を振る様にして、その連番を重複の無いデータとして利用して下さい) >あ、あくまでも世帯主・子供って言うのは例えでありまして >本来の使用用途は顧客リスト的な物がありまして >業者コード・業者名・商品リスト等々あるんですが との事ですので、今仮に、Sheet2のA列に業者コードが、B列に業者名がそれぞれ入力されていて、 Sheet3のA列には業者名が、B列には商品名が入力されていて、C列には商品コード等の「他の商品とは重複する事が無いデータ」が入力されていて、D列にはまた別のデータが入力されているという具合に、Sheet3のリストはA列~D列の範囲に作成されているものとします。 又、Sheet2及びSheet3のリストの各列の1行目には、「業者名」、「 商品名」、「商品コード」といった各項目名が入力されていて、実際のデータは2行目以下に入力されているものとします。 又、Sheet3のデータの中で、C列に入力されているデータに関しては、リスト中に同じデータが重複して入力される事は無いものとします。 そして、Sheet1のA2セルに業者コードを入力しますと、Sheet1のA4セルに業者名が表示され、Sheet1のA列~C列の6行目以下に、その業者の各商品データを表示するものとします。 尚、文章で説明しただけでは解り難いかも知れませんので、この回答欄内の添付画像も併せて御覧下さい。 もしも、質問者様が御利用になられているサイトでは添付画像が表示されない場合には、次の参考URLのページを御覧下さい。 【参考URL】 質問:No.7920741 Excelで子供の名前を行を分けて呼び出したい http://okwave.jp/qa/q7920741.html まず、Sheet1のA4セルに次の関数を入力して下さい。 =IF(AND($A$2<>"",$A$2<>Sheet2!$A$1,COUNTIF(Sheet2!$A:$A,$A$2)),VLOOKUP($A$2,Sheet2!$A:$B,2,FALSE),"") 次に、Sheet1のA5セルに次の関数を入力して下さい。 =Sheet3!$B$1 次に、Sheet1のB5セルに次の関数を入力して下さい。 =Sheet3!$C$1 次に、Sheet1のC5セルに次の関数を入力して下さい。 =Sheet3!$D$1 次に、Sheet1のB6セルに次の関数を入力して下さい。 =IF(OR($A$4="",ROWS($6:6)>COUNTIF(Sheet3!$A:$A,$A$4)),"",INDEX(Sheet3!$C:$C,MATCH($A$4,INDEX(Sheet3!$A:$A,IF(ROWS($6:6)=1,0,MATCH(B5,Sheet3!$C:$C,0))+1):INDEX(Sheet3!$A:$A,MATCH("*?",Sheet3!$A:$A,-1)),0)+IF(ROWS($6:6)=1,0,MATCH(B5,Sheet3!$C:$C,0)))) 次に、Sheet1のA6セルに次の関数を入力して下さい。 =IF(ISERROR(1/(INDEX(Sheet3!$A:$D,MATCH($B6,Sheet3!$C:$C,0),MATCH(A$5,Sheet3!$A$1:$D$1,0))<>"")),"",INDEX(Sheet3!$A:$D,MATCH($B6,Sheet3!$C:$C,0),MATCH(A$5,Sheet3!$A$1:$D$1,0))) 次に、Sheet1のA6セルをコピーして、Sheet1のC6セルに貼り付けて下さい。 次に、Sheet1のA6~C6の範囲をコピーして、同じ列の7行目以下に貼り付けて下さい。 以上です。
その他の回答 (2)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
G列(Sheet3)において、世帯主がまとまっている(並べ替えでまとまる)として B5セル 子供の数 =COUNTIF(G:G,A4) B6セル 最初の行 =IF(B5=0,"",MATCH(A4,G:G,0)) B7セル 人数分+1 =IF($B$5<=ROW(A1),"",B6+1) 下へオートフィル A6セル 子ども =IF(B6="","",INDEX(H:H,B6)) A4セルは =INDEX(E:E,A2+1) 添付図参照参考まで
お礼
なんとかできました!ありがとうございます! まだちょっと理想の物とは違うんですが概ねOKです! 後はここからちょこちょこイジってもう少し理想に近づけようと思います。
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
そんなめんどくさいことしなくても、最初からSheet3の形で作ればいいんじゃ・・・。 A列なんてコピペすれば済む話ですし。 Excelは表計算であってデータベースではないので、そういうことをやろうとすると 途端にちょっと難しい手順を踏まないと出来なくなります。
補足
あ、あくまでも世帯主・子供って言うのは例えでありまして分かりずらくて申し訳ないです。 本来の使用用途は顧客リスト的な物がありまして 業者コード・業者名・商品リスト等々あるんですが Sheet1にコードを入力しただけで業者Aではどんな商品(a.b)を扱っているのか パパッとわかりやすい表を出したいんです>< でも、やっぱ難しいんですよね・・・
お礼
おおお!スゴいの一言に尽きますね^^;かなり参考になりました 覚えれば覚えるほど「あそこをもう少し。ここをあぁやって」など 歯がゆいところが増えてきますね。 参考にさせて頂きました!ありがとうございます。