- ベストアンサー
エクセルで必要なデータのみを表示させるには。
シート1に下記のデータがあり、シート2にシート1のBにデータが入力された場合にシート2にシート1のCを表示させるにはどうしたらよいのでしょうか。 シート1 A B C 1 A 333 A×333 2 B B× 3 C 777 C×777 シート2 A 1 A×333 2 C×777
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
#3です。補足ありがとうございます。まだ不理解の点がありますが推測して (データ)Sheet1A1:C6(D列は当初ありません) (A列)(B列) (C列) (D列) 単価 数量 販売額 数量入力数 22 53 1166 1 33 0 1 55 12 660 2 34 10 340 3 35 0 3 D列D2に式=COUNTA($B$2:B2)をいれてD6まで式複写 すると上例のD列のようになる。 Sheet2にいって、Sheet1のA1:C1の見出しをSheet2の同じ場所に複写。 Sheet2のA2に式 =OFFSET(Sheet1!$A$2,MATCH(ROW(A2)-1,Sheet1!$D$2:$D$20,0)-1,0) をいれる。$D$20は適当に下の行を入れる。 A3以下A2の式を複写。 A2の式をB2に複写し、最後の引数を0->1に変える。 =OFFSET(Sheet1!$A$2,MATCH(ROW(B2)-1,Sheet1!$D$2:$D$20,0)-1,1) B3以下B2の式を複写。 C2にもB2の式を複写し、最後の引数を1->2に変える。 C3以下C2の式を複写。 (結果) Sheet2のA1:C6は 単価 数量 販売額 22 53 1166 55 12 660 34 10 340 #N/A #N/A #N/A #N/A #N/A #N/A #N/Aが、我慢できないなら、式は長くなるが C5の例なら =IF(ROW(C5)-1>MAX(Sheet1!D2:D20),"",OFFSET(Sheet1!$A$2,MATCH(ROW(D5)-1,Sheet1!$D$2:$D$20,0)-1,2)) とする。 Sheet1のD列の式D2の方も =IF(B2="","",COUNTA($B$2:B2))とすれば、B列が空白ならD列も空白になる。
その他の回答 (5)
- junjun2004
- ベストアンサー率28% (24/83)
下の補足です ・シート2の3行目A列に3を入れると、あり得ないので「#NUM!」が表示されますが、 表示されるのはシート2の3行目B列です。 書き忘れましたので、念のため。
- junjun2004
- ベストアンサー率28% (24/83)
私がもしこれをするとしたら、SMALL関数を使います。 まず、シート1、2ともに、一番左側に連番をつけるセルをつくります。 シート1 A B C D 1 1 A 333 A×333 2 2 B B× 3 3 C 777 C×777 シート2 A B C 1 1 2 2 シート2のB列に、「シート1のC列が空白以外で、シート2のA列番目に小さなシート1のA列の数字」を入れてあげます。 {=SMALL(IF(Sheet1!$C$1:$C$3<>"",Sheet1!$A$1:$A$3),Sheet2!A1)} (これは配列数式なので、shiftとCtrlを押しながらenterキーを押します) C列には「B列の番号と等しいシート1のD列」を持ってきます。 =VLOOKUP(Sheet2!B1,Sheet1!$A$1:$D$3,4,FALSE) (これは普通の関数です) そうすると シート2 A B C 1 1 1 A×333 2 2 3 C×777 となります。 また、シート2の3行目A列に3を入れると、あり得ないので「#NUM!」が表示されますが、これを利用して C列の関数を「B列がエラーだったら何も入力しない」というのを追加して =IF(ISERROR(Sheet2!B3),"",VLOOKUP(Sheet2!B3,Sheet1!$A$1:$D$3,4,FALSE)) とします。
お礼
ありがとうございます。 この方法で、ほぼ良いのですが、完成には少し問題がありますので、また後日、質問させていただきます。
- imogasi
- ベストアンサー率27% (4737/17069)
C列のCとセルデータの中身Cとが出てきてるらしく、混同しやすく読むと頭がぐるぐるです。その点考えて補足してください。 それとB1とかのように行も示して書いてください。 VLOOKUP関数の利用で解決例かも。
補足
シート1 A B C 1 A 333 A×333 2 B B× 3 C 777 C×777 A1からA2には数字(単価)が入力してあります B1からB3には必要なところのみ、数量を入力します C1からC3はA1(単価)×B1(数量)を表示 数式はA1&"*"&B1です シート1のB列に数字が入力された場合にシート2にシート1のC列を表示させたいです 今回の例はシート1のB2に数字が入力されなかったので以下のとおりになります。 A 1 A×333 2 C×777 このような、補足で分かっていただけるでしょうか よろしくお願いします
- edomin
- ベストアンサー率32% (327/1003)
質問の意味が良く読みとれません。もう一度質問して下さい。
補足
シート1 A B C 1 A 333 A×333 2 B B× 3 C 777 C×777 A1からA2には数字(単価)が入力してあります B1からB3には必要なところのみ、数量を入力します C1からC3はA1(単価)×B1(数量)を表示 数式はA1&"*"&B1です シート1のB列に数字が入力された場合にシート2にシート1のC列を表示させたいです 今回の例はシート1のB2に数字が入力されなかったので以下のとおりになります。 A 1 A×333 2 C×777 このような、補足で分かっていただけるでしょうか よろしくお願いします
A B C 1 A 333 =A1&"*"&B1 2 B =A2&"*"&B2 3 C 777 =A3&"*"&B3 シート2 A 1 =Sheet1!C1 2 =Sheet1!C2 3 =Sheet1!C3
補足
シート1 A B C 1 A 333 A×333 2 B B× 3 C 777 C×777 A1からA2には数字(単価)が入力してあります B1からB3には必要なところのみ、数量を入力します C1からC3はA1(単価)×B1(数量)を表示 数式はA1&"*"&B1です シート1のB列に数字が入力された場合にシート2にシート1のC列を表示させたいです 今回の例はシート1のB2に数字が入力されなかったので以下のとおりになります。 A 1 A×333 2 C×777 このような、補足で分かっていただけるでしょうか よろしくお願いします
お礼
ありがとう、ございます。 式の一部を利用させていただきました。 質問の形式を変更して、もう一度質問させていただきます。
補足
例題のA列の単価は私の場合に名称になっているのですが、同じ名称がある場合は一番上のが表示され、2つ目以降表示されません。 よろしく、お願いします。