[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『反映の仕方って・・・』(真寿ちゃん)
質問・・・ Sheet1のA1:真寿ちゃん(名前) B1:バナナ C1:H20/3/1〜H20/5/30 と入力した時、 Sheet2のA1に真寿ちゃんと入力しただけで、B1とC1に同じ内容を反映させる方法ってあるのでしょうか? 「エクセルのバージョン:excel2003&excel2007」 「OSのバージョン:windowsXP」
Sheet1の1行目に対応するそれぞれの値を Sheet2でも表示したい ・・・と言う事でしょうか?
HLOOKUP関数が使用出来そうに思います。
(HANA)
同じ様に表示はさせたいのですが、Aの欄には名前が複数人(30〜50人位)いるので、 sheet2のA欄に名前を入力した場合、BとCはその人にあった条件(sheet1で入力済み)を反映させる形にしたいのですが・・・
A B C
1 真寿ちゃん バナナ H20/3/1〜H20/5/30 2 パンダさん リンゴ H18/3/10〜H19/6/25 3 おさるさん みかん H19/8/1〜H20/1/1 4 ゴリラさん キウィ H20/2/1〜H20/4/30 上記がsheet1に入力した場合、 下記のsheet2に A B C 1 おさるさん みかん H19/8/1〜H20/1/1 2 パンダさん リンゴ H18/3/10〜H19/6/25 3 4 とA1に名前を入力しただけでBとCにその人の条件にあったのを表示させるという形なのですが・・・できますでしょうか?
失礼しました。 列方向の見出し(データは行方向へ並ぶ)だったのですね。
でしたら、VLOOKUP関数です。 こちらをご参考に、一度作ってみられては? http://www.excel.studio-kazu.jp/lib/e1tw/e1tw.html
上手く行かない場合は、その式と一緒に どの様になるのか説明を書いてみるのが良いと思います。
(HANA)
ありがとうございます。 参考を見てみましたが、その中で式 =VLOOKUP(B3, B6:C10, 2, FALSE) の意味で、B3 は調べたい品名、 B6:C10 は調べるテーブルの範囲、2 は表の2 列目のカロリーを求めるためと記載されていましたが、 例えば表が5つある時に表の2列目と4列目を求める時の式はどうすればできるのでしょうか?
表が5つ有る? 表の列が5つ有る?
後者で有れば =VLOOKUP(B3, B6:C10, 2, FALSE) ~~ここを「5」 にすると、5列目の値が返りますが・・・。 一つのセルに一つのセルの値 に成れば良いのですよね?
上にご提示の表ですと、Sheet2のB1には =VLOOKUP($A1,Sheet1!$A$1:$C$4,2,FALSE) Sheet2のC1には ~~~2番目(B列) =VLOOKUP($A1,Sheet1!$A$1:$C$4,3,FALSE) ~~~3番目(C列) と言った式になると思いますが・・・・ 表が5つですか?
もう一度どういった状況なのか詳しく教えて下さい。
(HANA)
例えば、sheet2のB1に2番目と4番目を返したいのです。 簡単に言うと2番目に返す値が無く、4番目に返す値があった場合に4番目の値からB1に返したいと思っているのですが・・・
2番目にも4番目にも有った場合にどうするか? とか、 2番目や4番目のデータが何か(文字?数値?日付?) とかによって、式が変わると思いますが それらの列にはどの様な値が入っていますか? また、双方に入っている場合が有りますか?
(HANA)
A B C D E F G 1 真寿ちゃん バナナ H20/3/1〜H20/5/30 らいおん にく H20/9/1〜H20/9/30 2 パンダさん リンゴ H18/3/10〜H19/6/25 こあら ささのは H16/2/20〜H17/3/25 3 おさるさん みかん H19/8/1〜H20/1/1 らっこ ほたて H19/10/1〜H19/10/31 4 ゴリラさん キウィ H20/2/1〜H20/4/30 らくだ おみず H19/12/31〜H20/3/31 上記がsheet1に入力した場合、 下記のsheet2に A B C 1 おさるさん みかん H19/8/1〜H20/1/1 2 パンダさん リンゴ H18/3/10〜H19/6/25 3 らっこ ほたて H19/10/1〜H19/10/31 4 こあら ささのは H16/2/20〜H17/3/25 と表示させたいものですが・・・
表が二つに分かれているのですね・・・・。 VLOOKUP関数を使うなら 1.A:Cを検索し表示、無い場合は「""」を返す式は IF(COUNTIF(Sheet1!$A:$A,$A1),VLOOKUP($A1,Sheet1!$A:$C,COLUMN(B1),0),"") です。
2.上の式の参照先を変更し E:Gを検索し表示、無い場合は「""」を返す式は IF(COUNTIF(Sheet1!$E:$E,$A1),VLOOKUP($A1,Sheet1!$E:$G,COLUMN(B1),0),"") です。 ~~~~~ ~~~~~ どちらかに有る方を表示させたいなら二つを&で結んで下さい。 = 1の式 & 2の式 これを、& で5の式までつなげれば、ご希望の結果には成ると思います。
本当は、表を一つにまとめられるのが一番良いのだと思いますが・・・・。
もう一つ、INDEX関数を使うと範囲が複数設定出来ますので =VLOOKUP($A1,INDEX((Sheet1!$A:$C,Sheet1!$E:$G),,, SUM(COUNTIF(Sheet1!$A:$A,$A1)*1,COUNTIF(Sheet1!$E:$E,$A1)*2)),COLUMN(B1),0) ↑2行で一つの式です。 この様にも出来ると思います。
表を増やす場合は、INDEX関数の最初の(Sheet1!$A:$C,Sheet1!$E:$G)の部分に あと3つ「,」で区切りながら指定するのと、SUM関数の部分の SUM(COUNTIF(Sheet1!$A:$A,$A1)*1,COUNTIF(Sheet1!$E:$E,$A1)*2) の部分に やはり「,」で区切りながら COUNTIF(Sheet1! 名前の有る列 ,$A1) * 何番目の表か?) の様に増やして下さい。
(HANA)
A B C D E F G 1 真寿ちゃん バナナ H20/3/1〜H20/5/30 らいおん にく H20/9/1〜H20/9/30 2 パンダさん リンゴ H18/3/10〜H19/6/25 こあら ささのは H16/2/20〜H17/3/25 3 おさるさん みかん H19/8/1〜H20/1/1 らっこ ほたて H19/10/1〜H19/10/31 4 ゴリラさん キウィ H20/2/1〜H20/4/30 らくだ おみず H19/12/31〜H20/3/31 上記がsheet1に入力した場合、 下記のsheet2に A B C 1 おさるさん みかん H19/8/1〜H20/1/1 2 パンダさん リンゴ H18/3/10〜H19/6/25 3 らっこ ほたて H19/10/1〜H19/10/31 4 こあら ささのは H16/2/20〜H17/3/25 と表示させたいものですが・・・(前回の分をそのままです) ◎sheet1でABCは1つ目の表でEFGは2つめの表になります。それをsheet2にAの欄に名前を入力しただけで、その人にあった条件(Bの欄に食べ物、Cの欄に期間)が表示される場合もこの式で成立するのでしょうか?それとも違う式になるのでしょうか?
少し疑問がありますb >それをsheet2にAの欄に名前を入力しただけで、その人にあった条件(Bの欄に食べ物、Cの欄に期間)が表示される場合もこの式で成立するのでしょうか? HANAさんの数式は試されました? >それとも違う式になるのでしょうか? 試した結果が求めたものと違ったのでしょうか? それともう一つb なぜ、Sheet1の表は、A〜CとE〜Gの二つの場所で管理するのでしょう? 名前(動物)は、A列 名前(食物)は、B列 期間 は、C列 にしたほうが管理しやすいし、HANAさんの仰るとおり簡単だと思いますが・・・ (キリキ)(〃⌒o⌒)b
=VLOOKUP($A3,INDEX(('20070613版'!$B:$C,'20070613版'!$H:$I,'20070613版'!$N:$O),,,SUM(COUNTIF('20070613版'!$B:$B,$A3)*1,COUNTIF('20070613版'!$H:$H,$A3)*2,COUNTIF('20070613版'!$N:$N,$A3)*3)),COLUMN(B3),0) しかし、またまた質問なのですがこの式をE3に貼り付けると下の式の様になったのですが、 =VLOOKUP($D3,INDEX(('20070613版'!$B:$C,'20070613版'!$H:$I,'20070613版'!$N:$O),,,SUM(COUNTIF('20070613版'!$B:$B,$D3)*1,COUNTIF('20070613版'!$H:$H,$D3)*2,COUNTIF('20070613版'!$N:$N,$D3)*3)),COLUMN(E3),0) D3に名前を入れるとE3に表示されるはずのものが表示せず#REF!と表示され、問題解決しません。 どうやったら表示される様になるでしょうか?
何とかなりましたか、良かったです。 でも、実際になさりたいことを書くのが良いと思います。
当初は、名前で検索をしてそれに続く2列を表示させる と言ったご希望でしたので、VLOOKUP関数の列番号に COLUMN関数を使用しましたが、そうでないなら 希望する列番号を入れておくのが良いと思います。
VLOOKUP関数の列番号 とは、B3の式の場合 【COLUMN(B3)】の部分です。
このVLOOKUP関数はネストがたくさんで長くなっていますが VLOOKUP(検索値,範囲,列番号,検索の型) とそれぞれ出して考えると
検索値 $A3 範囲 INDEX(・・・・$A3)*3)) ←ここが長い 列番号 COLUMN(B3) 検索の型 0
(これは、数式バーの左側にある[ Fx ]を押すと 数式パレットが表示されて確認しやすいと思います。)
COLUMN(B3)は「2」を返しますので、B列の式では 範囲の2列目を表示しますが これをE列にコピペした事で、この部分が COLUMN(E3)に成っており、これは「5」を返します。 範囲の5列目は有りませんので、#REF!が表示されます。
再度書いておきます。 この式をコピーしたときに 該当のデータを順番に表示させたい と言うご希望が特に無いので有れば、B3セル用の式の COLUMN(B3)の部分を「2」に変更した後 E列にコピペして下さい。
或いは、E列にコピペした後、COLUMN関数の参照先を B列に変更して下さい。
(HANA)
すごく勉強になりました。 エクセルから離れてた時期が長く、思い出すにも思い出せなくて(笑) 最後にまた質問なのですが、名前を入れない状態だと#VALUEが表示されるのですが、これは隠せないのですか?上記のURLの中に#N/Aの隠し方と一緒なのですか?
各表の先頭列に有る値 (検索される可能性の有る値)が その他の部分に存在しないので有れば 全ての表が含まれる範囲を選択し その中で検索値を捜して条件にするのが良いと思います。 例えば COUNTIF('20070613版'!$B:$N,$D3) の様に。
検索される可能性の有る値が、その他の部分にも存在する可能性が有るのなら 各先頭列で、検索値の個数を求めそれを足し算した物 COUNTIF('20070613版'!$B:$B,$D3) + COUNTIF('20070613版'!$H:$H,$D3) + COUNTIF('20070613版'!$N:$N,$D3) を条件にしても良いかもしれません。
もちろん、上記URLの中に書いてある方法と同じように IF(ISERROR(現在の式),"",現在の式) とやっても良いですが、式が更に長く成って仕舞いますので・・・。
もしも、最初に書いたチェックが出来ないので有れば 2番目に書いた物でも、やはり式が長くなってしまいますので 条件付き書式で、エラー値を「見えなくする」と言う方法を採るのが 良いかもしれません。
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.