アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2003使用

【Sheet1】

A2 に 通し番号記入[1]で

A4 に 世帯主名[世帯主A]

A6 に 子供の名前[子供a] を表示させたい。
A7           [子供b]
A8            ・
・             ・
・             ・
・             ・
【Sheet2】

A1 に 通し番号
B1 に 世帯主名


【Sheet3】

A列 に 世帯主名
B列 に 子供

   [A]    [B]
1 [世帯主A] [子供a]
2 [世帯主A] [子供b]
3 [世帯主B] [子供z]



通し番号を記入し、世帯主の名前はVLOOKUPで表示させる。
までは出来ました、更にそこから、その世帯主の名前から連携?させて
子供の名前を表示させれたらな~と思いまして。。。

なにぶんExcelを使い始めて間もないものでてんで詳しいことが分かりません
このような呼び出し方、表示のさせ方は出来るのでしょうか?
わかりにくい説明かとは思いますがどうぞご教授よろしくお願いします。

参考サイトなどもありましたら合わせてお願いいたします。

A 回答 (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://oshiete.goo.ne.jp/qa/7920741.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行目以下に貼り付けて下さい。

 以上です。
「Excelで子供の名前を行を分けて呼び出」の回答画像3
    • good
    • 1
この回答へのお礼

おおお!スゴいの一言に尽きますね^^;かなり参考になりました
覚えれば覚えるほど「あそこをもう少し。ここをあぁやって」など
歯がゆいところが増えてきますね。
参考にさせて頂きました!ありがとうございます。

お礼日時:2013/02/01 07:25

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)
添付図参照参考まで
「Excelで子供の名前を行を分けて呼び出」の回答画像2
    • good
    • 0
この回答へのお礼

なんとかできました!ありがとうございます!
まだちょっと理想の物とは違うんですが概ねOKです!

後はここからちょこちょこイジってもう少し理想に近づけようと思います。

お礼日時:2013/02/01 07:21

そんなめんどくさいことしなくても、最初からSheet3の形で作ればいいんじゃ・・・。


A列なんてコピペすれば済む話ですし。

Excelは表計算であってデータベースではないので、そういうことをやろうとすると
途端にちょっと難しい手順を踏まないと出来なくなります。

この回答への補足

あ、あくまでも世帯主・子供って言うのは例えでありまして分かりずらくて申し訳ないです。
本来の使用用途は顧客リスト的な物がありまして
業者コード・業者名・商品リスト等々あるんですが
Sheet1にコードを入力しただけで業者Aではどんな商品(a.b)を扱っているのか
パパッとわかりやすい表を出したいんです><

でも、やっぱ難しいんですよね・・・

補足日時:2013/01/31 15:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!