• ベストアンサー

エクセルで必要なデータのみを表示させるには。

シート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

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#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列も空白になる。

m-happy-t
質問者

お礼

ありがとう、ございます。 式の一部を利用させていただきました。 質問の形式を変更して、もう一度質問させていただきます。

m-happy-t
質問者

補足

例題のA列の単価は私の場合に名称になっているのですが、同じ名称がある場合は一番上のが表示され、2つ目以降表示されません。 よろしく、お願いします。

その他の回答 (5)

回答No.6

下の補足です ・シート2の3行目A列に3を入れると、あり得ないので「#NUM!」が表示されますが、 表示されるのはシート2の3行目B列です。 書き忘れましたので、念のため。

回答No.5

私がもしこれをするとしたら、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)) とします。

m-happy-t
質問者

お礼

ありがとうございます。 この方法で、ほぼ良いのですが、完成には少し問題がありますので、また後日、質問させていただきます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

C列のCとセルデータの中身Cとが出てきてるらしく、混同しやすく読むと頭がぐるぐるです。その点考えて補足してください。 それとB1とかのように行も示して書いてください。 VLOOKUP関数の利用で解決例かも。

m-happy-t
質問者

補足

シート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)
回答No.2

質問の意味が良く読みとれません。もう一度質問して下さい。

m-happy-t
質問者

補足

シート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 このような、補足で分かっていただけるでしょうか よろしくお願いします

noname#6683
noname#6683
回答No.1

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

m-happy-t
質問者

補足

シート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 このような、補足で分かっていただけるでしょうか よろしくお願いします

関連するQ&A