• ベストアンサー
  • すぐに回答を!

excelでデータを別シートに引っ張ってきたい

excelで値を検索し、返す時、返す値の横にあるデータを違うシートのセルの下に一緒に引っ張ってきたいときの関数(方法)を教えてください。 素人なので分かりにくいと思いますが、お知恵をお借りしたいと思います。 あるデータのシートの検索値を別シートに持ってきたいのですが、シート1をシート2のようにしたいのです。 /は空白 例)シート1 /A B C D E 1(1) □ ○ ▽ ◎ 2 (2) ▼ ■ ◇ ◎ シート2 / A B C D 1 (1) □ 2 /○ ▽ ◎ 3 (2) ▼ 4 /■ ◇ ◎ 分かりにくいかもしれませんが、 シート1の(1)(A1)を検索すると、シート2(B1)に□(これはVLOOKで引っ張ってこれるのはわかります。) 次にシート1の(C1)○をシート2の(B2)へ持ってきたいのです。シート1(D1)(E1)はシート2の(C2)(D2)へ。 しかもシート1のC列は空白セルもあり、シート1のC列が空白の場合、下にずれることなくシート1の(D1)(E1)はシート2の(C1)(D1)へ。下記<図a>のようになるようにしたいのです。 そして、シート2のA列に検索値として入力する(1)や(2)の値は連番ではなく、(2)の次に(5)に飛んだりします。(2)の行のC列にデータがあっても、(5)のC列にデータはないこともあります。<図b> <図a> /A B C D 1 (1) □ ▽ ◎ 2 (2) ▼ ◇ ◎ <図b> / A B C D 1 (1) □ 2 /○ ▽ ◎ 3 (2) ▼ 4 /■ ◇ ◎ 5 (5) □ ▽ ◎ 6 (7) ▼ ◇ ◎ vlookとかCLUMN関数とか考えてはみたのですが、どうもうまくいきません。 毎回作成するデータなのですが、毎回コピペで作成しています。 とても面倒なので(1)を検索したらデータが一瞬で検索できるようにしたいと試みてはみたものの、私の知識では不可能でした。 関数では無理なのでしょうか。。。 関数はあまり詳しくないので分かりやすい方法があれば、教えていただければ助かります。 関数に詳しい方、よろしくおねがいいいたします。 関数にはこだわっていません。違う方法があればそれも含めておねがいいたします。

共感・応援の気持ちを伝えよう!

  • 回答数6
  • 閲覧数1095
  • ありがとう数5

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

  • ベストアンサー
  • 回答No.1

>シート2のA列に検索値として入力する(1)や(2)の値は連番ではなく、(2)の次に(5)に飛んだりします。 と書かれておられるという事は、Sheet2のA列の値は、関数によって表示されたデータなどではなく、全て手入力されたデータであると考えて宜しいのですね?  それでしたら次のような方法になると思います。  まず、Sheet2の表示は、1行目からではなく、2行目から始まる様にして下さい。  その上で、Sheet2のB2セルに次の関数を入力して下さい。 =IF(AND(ISNUMBER(1/(VLOOKUP($A1,Sheet1!$A:$C,3,FALSE)<>"")),$A2<>"",ROWS($2:2)>1),IF(COLUMNS($B:B)=1,"【行を空けて下さい】",""),IF(IF(ISERROR(1/(VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$C,3,FALSE)<>"")),$A2="",OR(AND($A2<>"",COLUMNS($B:B)>1),ISERROR(1/(VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$E,COLUMNS($B:B)+2-($A2<>"")*(COLUMNS($B:B)=1),FALSE)<>"")))),"",VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$E,COLUMNS($B:B)+2-($A2<>"")*(COLUMNS($B:B)=1),FALSE)))  次に、Sheet2のB2セルをコピーして、Sheet2のC2~D2の範囲に貼り付けて下さい。  次に、Sheet2のB2~D2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。  以上で準備は完了で、後はSheet2のA2以下に検索値を入力して行きますと、御希望通りの検索結果が得られると思います。  尚、Sheet2のA列において、Sheet1のC列の検索結果が空欄とはならない検索値が入力されている行の1つ下の行は、Sheet1のC列~E列の検索結果を表示させるために使用せねばなりませんから、そのA列のセル(御質問文の例における「/」となっているセル)は検索値を入力せずに、空欄としなければならない筈ですので、もしも間違えて検索値を入力してしまった場合には、「【行を空けて下さい】」という表示が現れる様になっております。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お礼が遅くなりました。 データを作成する時間がなく、昨日作成してみました。すごい!ちゃんと思った通りの位置に思った通りに引っ張ってこれました。 シート1の変更があった場合に自分でも関数を変更できるか試みましたが、私の頭では無理そうで(笑) 頭のいいかたの式ってすごいですね。感動しました。 これからもお願いしたいぐらいです。 本当に助かりました。有難うございました。

質問者からの補足

もうひとつ教えていただきたいのですが、実はシート1のD列は数字で、それに15をかけた数字をシート2のC列へ持ってきたいのです。 なんせ15をかければよかったので、別シートを作成し、シート2を入力フォームとして入力フォームのC2 を別シートで参照し、参照したセルに15をかけることにしました。 しかし、コピーしたときに#VALUE!が出てしまいます。 ISERROR関数等使用しても消すことができませんでした。 これは消すことはできないのでしょうか。教えていただいた式に関数を入れようとしたのですが、うまくいきませんでした。 もし、いい方法があれば教えていただきたいなと思います。 無理なら、後から#VALUE!だけ消せばいいかなとも思っていますが、見た目が良くないなと少し気になってます。 おわかりになられましたらよろしくお願いします。

関連するQ&A

  • エクセルVBAで関数が入った空白セルの取得

    エクセルVBAで下記のようなセルの参照をしたいのですが、よろしくお願いします。(エクセル2002です)   A  B  C  D  E  F 1 78 80 セル(A1)(B1)には値も関数も入れられています。 セル(C1)(D1)(E1)には値は入っていませんが、ワークシート関数が組み込まれており空白となっています。(関数の""にて空白) セル(F1)には何も入力されていません。 今回はセル(B1)の80の値を取得できるようにVBAで下記のようにコードを組みました。 Range("F1").End(elToLeft).Activate そうすると、セル(E1)に関数があるために(?)(E1)がアクティブな状態となります。 関数が入力されていても空白として(B1)をアクティブな状態にするために良い方法はありますでしょうか? 誠に申し訳ございませんが、よろしくお願いします。

  • Excelの入力式について

    Excelの入力式について教えてください。 たとえば、A1セル&#65374;F1セルに数値が入っていて、G1セルA1+B1の値、H列にC1+D1の値 I列にE1+F1の値としたい場合、 G1セルに数式を入れてH列にコピーするとB1+C1になってしまいます。 上手くやる方法はないのでしょうか。 1列ずつわざわざ空白列を作るのは嫌ですし、たくさんあったら数式を打ち込むのも大変です。。。

  • excel 別シートへのデータの転記

    sheetが二枚あります。 sheet1 元データ sheet2 転出先(三種類あります) sheet1のA列に〇がついていたらsheet1Q列のシート名を見て、 転出先に同じデータがあるか?無ければ新規作成をするか? 新規作成をする場合には以下のように、 そのシート名の各セル番地にデータを転記。 sheet1のA列2行目移行同じ繰り返しで○があるか見に行く。 sheet1の1行目は項目名になります。 A2に○が付いていてQ列のシート名が100だった時 A2のデータを以下のように。 sheet1   sheet2(シート名は100) P列の値 → A7へ C列の値 → A8へ H列の値 → A9へ I列の値 → A10へ F列の値 → E5へ L列の値 → D6へ M列の値 → D7へ K列の値 → F9へ J列の値 → D8へ 続けてA4に○が付いていてQ列のシート名が100だった場合。 sheet1   sheet2(シート名は100) P列の値 → A12へ C列の値 → A13へ H列の値 → A14へ I列の値 → A15へ F列の値 → E10へ L列の値 → D11へ M列の値 → D12へ K列の値 → F14へ J列の値 → D13へ 以上のようなことがしたいのですが、 参考書でサンプルなどを見てやっているのですが、 なかなかうまくいきません。 コードのご教示をお願いたします。

その他の回答 (5)

  • 回答No.6

>参照したセルに15をかけることにしました。 >しかし、コピーしたときに#VALUE!が出てしまいます。 >C2のセルへコピーしたのですが、うまく15でかけた数で表示がされませんでした。  もしかしますと、参照先であるSheet1のD列のデータが、実際には数値データではなく、改行等の何らかの「印刷出来ない文字」を含んでいる文字列データになってはいないでしょうか?  試しに、Sheet1において、D列に数値(の様に見えるデータ)が入力されている行の中の、未使用の列の所にあるセルに、次の関数を入力してみて下さい。 =LEN(INDEX($D:$D,ROW()))  その際、表示される数値が、「D列に入力されている数値の桁数」よりも多い数になってはいないでしょうか?  もし、上記の関数によって表示される数値が、「D列に入力されている数値の桁数」よりも大きい場合には、D列に入力されているデータは数値データではなく、何らかの「印刷出来ない文字」を含んでいる文字列データという事になります。(上記の関数は、D列に入力されているデータが、本当に数字のみから成り立っているのかどうかを確認するためだけのものですから、確認し終えた後では、削除してしまって構いません)  もし、D列に入力されているデータに「印刷出来ない文字」が含まれている場合には、本来であれば、元データであるD列に入力されているデータの中から、「印刷出来ない文字」を削除してしまった方が良いのですが、それが困難である場合には、Sheet2のC2セルに入力する関数を少し変更して、次の様な関数にされると良いと思います。 =IF(AND(ISNUMBER(1/(VLOOKUP($A1,Sheet1!$A:$C,3,FALSE)<>"")),$A2<>"",ROWS($2:2)>1),"",IF(IF(ISERROR(1/(VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$C,3,FALSE)<>"")),$A2="",OR($A2<>"",ISERROR(1/(VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$E,4,FALSE)<>"")))),"",IF(ISNUMBER(CLEAN(VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$E,4,FALSE))+0),CLEAN(VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$E,4,FALSE))*15,VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$E,4,FALSE))))

共感・感謝の気持ちを伝えよう!

  • 回答No.5
  • tom04
  • ベストアンサー率49% (2537/5117)

No.2・3です。 No.3の数式がちゃんと表示されない!というコトですので・・・ もしかして配列数式になっていないのではないでしょうか? No.2の操作方法と一緒で Shift+Ctrl+Enterで確定すればおそらくお望み通りの表示になるはずです。 しかし、No.1さんの補足に >実はシート1のD列は数字で、それに15をかけた数字をシート2のC列へ持ってきたいのです。 とありましたので、 もう一度数式を載せてそれに15を掛け算する方法もありますが、手っ取り早くVBAでやってみました。 ↓の画像で左側がSheet1・右側がSheet2とします。 尚、Sheet1で空白セルがあるのはC列だけ!と前提です。 画面左下のSheet2のSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストし、Sheet2のA列にデータを入力してみてください。 (Sheet2のC列は15倍した数値にしています) Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim i As Long, c As Range, wS As Worksheet Set wS = Worksheets("Sheet1") If Intersect(Target, Range("A:A")) Is Nothing Or Target.Count <> 1 Then Exit Sub If Target <> "" Then With Target Set c = wS.Range("A:A").Find(what:=.Value, LookIn:=xlValues, lookat:=xlWhole) If Not c Is Nothing Then i = c.Row If .Offset(, 1) <> "" Then MsgBox "このセルは入力できません" .Value = "" .Offset(1).Select Exit Sub Else .Offset(, 1) = wS.Cells(i, "B") If WorksheetFunction.CountBlank(wS.Cells(i, "C").Resize(, 3)) = 0 Then .Offset(1, 1) = wS.Cells(i, "C") .Offset(1, 2) = wS.Cells(i, "D") * 15 .Offset(1, 3) = wS.Cells(i, "E") Else .Offset(, 2) = wS.Cells(i, "D") * 15 .Offset(, 3) = wS.Cells(i, "E") End If End If Else MsgBox "該当データなし" .Value = "" .Select End If End With End If End Sub 'この行まで ※ Sheet2のB~D列に数式が入っていると数式も消えてしまいますので、 新しいSheetで試してみてください。m(_ _)m

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お礼が遅くなり申し訳ございません。有難うございました。 VBEすごいですね。修正したいとき、VBEがわかる人があまりいないので、関数の方がいいかなと個人的に思いました。 シート1枚だけを日付をつけてフォルダ指定し保存したいのでそこはVBEでしたいと思っています。 また質問すると思いますので、よろしくお願いいたします。 有難うございました。

  • 回答No.4

>もうひとつ教えていただきたいのですが、実はシート1のD列は数字で、それに15をかけた数字をシート2のC列へ持ってきたいのです。  15を掛けなければならないのはSheet1のD列の値だけであり、その他の列の値に関しては、そのまま表示すると考えれば宜しいのでしょうか?  それでしたらまず、Sheet2のB2セルに次の関数を入力して下さい。 =IF(AND(ISNUMBER(1/(VLOOKUP($A1,Sheet1!$A:$C,3,FALSE)<>"")),$A2<>"",ROWS($2:2)>1),"【行を空けて下さい】",IF(IF(ISERROR(1/(VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$C,3,FALSE)<>"")),$A2="",ISERROR(1/(VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$E,2+($A2=""),FALSE)<>""))),"",VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$E,2+($A2=""),FALSE)))  次に、Sheet2のC2セルに次の関数を入力して下さい。 =IF(AND(ISNUMBER(1/(VLOOKUP($A1,Sheet1!$A:$C,3,FALSE)<>"")),$A2<>"",ROWS($2:2)>1),"",IF(IF(ISERROR(1/(VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$C,3,FALSE)<>"")),$A2="",OR($A2<>"",ISERROR(1/(VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$E,4,FALSE)<>"")))),"",IF(ISNUMBER(VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$E,4,FALSE)),VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$E,4,FALSE)*15,VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$E,4,FALSE))))  次に、Sheet2のD2セルに次の関数を入力して下さい。 =IF(AND(ISNUMBER(1/(VLOOKUP($A1,Sheet1!$A:$C,3,FALSE)<>"")),$A2<>"",ROWS($2:2)>1),"",IF(IF(ISERROR(1/(VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$C,3,FALSE)<>"")),$A2="",OR($A2<>"",ISERROR(1/(VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$E,COLUMNS($B:D)+2,FALSE)<>"")))),"",VLOOKUP(IF($A2="",$A1,$A2),Sheet1!$A:$E,COLUMNS($B:D)+2,FALSE)))  そして、Sheet2のB2~D2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。  以上です。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お礼が遅くなりました。 C2のセルへコピーしたのですが、うまく15でかけた数で表示がされませんでした。 なぜかは分かりません。質問に丁寧に答えていただき感謝しております。 最初の関数が求めていたものそのものでしたので、ベストアンサーにさせていただきました。 本当にありがとうございました。

  • 回答No.3
  • tom04
  • ベストアンサー率49% (2537/5117)

No.2です! たびたびごめんなさい。 前回の数式では↓Sheet1に空白がある場合 右側画像の上のような感じになります。 下側の画像のような表示をご希望だったのでしょうかね? そうであればSheet2のB2セルに入れる数式は少し長くなりますが↓の数式に変更してください。 =IFERROR(IF(COUNTA(OFFSET(Sheet1!$B$1:$E$1,MATCH(IF($A2="",$A1,$A2),Sheet1!$A:$A,0)-1,,1))=4,IF($A2<>"",IF(COLUMN()=2,VLOOKUP($A2,Sheet1!$A:$B,2,0),""),VLOOKUP($A1,Sheet1!$A:$E,COLUMN(C1),0)),INDEX(OFFSET(Sheet1!$B$1:$E$1,MATCH($A2,Sheet1!$A:$A,0)-1,,1),,SMALL(IF(OFFSET(Sheet1!$B$1:$E$1,MATCH($A2,Sheet1!$A:$A,0)-1,,1)<>"",COLUMN($A$1:$D$1)),COLUMN(A1)))),"") やはり配列数式となりますのでShift+Ctrl+Enterで確定してください。 今回も外していたらごめんなさいね。m(_ _)m

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました。 コピーした時にうまく参照されませんでした。 分かりにくい説明に丁寧にお答えいただき感謝しております。

  • 回答No.2
  • tom04
  • ベストアンサー率49% (2537/5117)

こんばんは! こういうコトでしょうか? ↓の画像で説明します。 左側がSheet1・右側がSheet2とします。 両Sheetとも、1行目は項目行として何らかの名目を入れておいてください。 データは2行目からあるという前提の数式です。 Excel2007以降のバージョンだという前提です。 Sheet2のB2セルに =IFERROR(IF($A2<>"",IF(COLUMN()=2,VLOOKUP($A2,Sheet1!$A:$B,2,0),""),INDEX(OFFSET(Sheet1!$C$1:$E$1,MATCH($A1,Sheet1!$A:$A,0)-1,,1),,SMALL(IF(OFFSET(Sheet1!$C$1:$E$1,MATCH($A1,Sheet1!$A:$A,0)-1,,1)<>"",COLUMN($A$1:$C$1)),COLUMN(A1)))),"") これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定! この画面から数式をコピー&ペーストする場合は 上記数式をドラッグ&コピー → Sheet2のB2セルを選択 → 数式バー内に貼り付け  → そのまま(編集可能なまま)Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これを列・行方向にオートフィルでコピーすると 画像のような感じになります。 仮にSheet1のC~E列に空白セルがある場合は左詰めで表示されます。 ※ Excel2003までの場合は上記数式は利用できませんので、別の方法を考える必要があります。 外していたらごめんなさいね。m(_ _)m

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お礼が遅くなりました。昨日作成してみました。 kagakushikiさんの関数とは違うのにちゃんと思った通りの位置に引っ張ってこれました。 皆さん頭が良くて感動です! わたしの分かりにくい説明でここまで的確に回答いただけて感謝しております。 ありがとうございました。

質問者からの補足

お伝え忘れていましたが、最初に回答いただいたものが求めていたものになります。 質問内容が分かりにくく申し訳ございません。 有難うございました。

関連するQ&A

  • エクセルのシート間の情報のやりとりについて教えて下さい。

    エクセルのシート間の情報のやりとりについて教えて下さい。 シート1で、以下のように配置し、 B列:年齢 C列:名前 D列:身長 E列:体重 これを30人分(30行)作成して、それぞれの値を記入しました。 シート2で、例えばA1に「20」と記入すると、B1にシート1の20行目のデータが「B1・C1・D1・E1」に記入されるようにしたいのです。 また、シート2のA2やA3も同様に「12」とか「10」とか、任意の値を入れると、シート1のその行数からデータを取得したいと考えています。 更にそのシート2で取得した情報を、シート3の任意のセルで文字列の中に埋め込みたいです。 もし、詳しい方がいましたら教えていただけないでしょうか。 お願いいたします。

  • EXCEL VBAで複数のシートの中から該当値を検索する方法について

    すいません、EXCEL VBAで複数のシートの中から該当する値を検索する方法について教えていただきたいことがあります。      Sheet1              A列   B列  C列   1行  11  りんご  31  2行  12  バナナ  32  3行  13  みかん  33  4行  14  ぶどう  34   ・   ・   ・     ・        Sheet2              A列   B列  C列   1行  31  すいか  11  2行  32  レモン  12  3行  33  パイン  13  4行  34  ざくろ  14   ・   ・   ・     ・ というデータが入っているブックについて 「全部のシートを検索し、A列に11の値が入っているセルの行数及びその行のB列の値」 をSheet1のD1セルとE1セルにそれぞれ返す方法はどうしたらよろしいんでしょうか。 For Each を使うのではないかと思って色々やってみたのですが、どうも上手く作動してくれません。 よろしくお願いいたします。

  • エクセル vlook関数、可視セルのコピーについて

    大量のデータを編集している仕事をしており、 教えて頂けないでしょうか。 ・可視セルから可視セルへのコピー ・vlookの結果を、関数式が入っていない状態で表示したい(TEXT関数ではなく) 説明が下手かもしれませんが申し訳ありません。 ある大量データのエクセルシートが二つあります。 それを合わせて、vlookで結果を出します。 結果を出したいシートの列には、予めいくつか入力されている消せないセルがあります。 この消せないセルは、vlookの結果を出すセルではありません。 ソートをかけて、vlookの貼り付け先であるセルを出します。 結果が反映されます。 この場合、結果先のセルにはvlookの関数式が入ったデータが入ります。 この結果を関数式が入っていない数値や文字にしたいのです。 私のやり方は、結果先の列の横に新たに列を挿入し そこにvlookの結果を出し、それをコピー、反映させたい列へ形式を選択して値を貼り付けています。 しかし一度に選択してコピーしようとしても、ソートがかかっており 可視セル状態にしても、うまく貼り付けができません。 なので、一つ一つのセルをコピーして値にし、横のセルに貼り付けています。 上記のどちらか一つがわかれば、できると思うのですが 何か良いやり方はないでしょうか。 あまり詳しくなく、教えてもらえればと思います。

  • excelのデータの移動?集約?をしたいです

    よろしくお願いします EXCEL2000を使用しています。OSはXPです。 データがランダムにA~O列 1~200行まであります この量は、その時その時変わるのですが だいだい、その範囲にあります そのランダムに入っているデータを空白のセルを除いて A列に並べたいのです 順番は1行目から横にあるデータを順番に下に並べ 次は2行目のデータで、その次は3行目。。。としたいです 例 A1 B1 C1 D1 E1 A2 C2 E2 A3 B3 D3 というデータを A1 B1 C1 D1 E1 A2 C2 E2 A3 B3 D3 というようにしたいのですが よろしくお願いします

  • EXCELでデータが入っている最終行までの合計

    現在、EXCEL2000で各月の全得意先の合計を求める式を作っています。 データは現在B列に得意先コード・C列に得意先名D列以降はVLOOKUP関数で別シートから求めた各月の得意先の売上金額を求めています。 D6セル:VLOOKUP(B6,'5月'!$B$6:$J$1500,9,0) 例えば、現在D6からD1149までにデータが入っており、別シートの得意先元リストの件数が増えれば、自動的に下の行にスライドするようになっています。その為、数行余分に予め関数を入れた空欄の行を作っています。 B6セル:OFFSET(元リスト!$B$6,ROW()-6,COLUMN()-2) 現在D1158にD6からデータの入っている最終行まで合計を関数で表示させたいのですがうまくいきません。ネットでも色々探しているのですが、私の検索の仕方が悪いのか中々見つかりません。 LOOKUP関数となにかを組み合わせて、得意先コード(B列)の空白になっている時、その一つ上のD列の行を参照できるようにできればいいんじゃないかとは思うのですが。 もし、いい方法があればご教示願います。

  • 別のシートにデータを出す方法

    シート1に 番号 A1に1 A2に2 A3に3 A4に4 データ↓ B1に43 B2に45 B3に47 B4に55 C1に733 C2に890 C3に826 C4に94 D1に57 D2に67 D3に41 D4に52 E1に301 E2に104 E3に719 E4に441 という表があるとします。 番号1の場合は、B1の43、C1の733、D1に57、E1に301というデータです。 シート2の、 A3に、1という数字(シート1のA1の、1という番号)をいれれば、 シート2の B3に、シート1の、B1の43というデータ。 C3に、シート1の、C1の733というデータ。 D3に、シート1の、D1の57というデータ。 E3に、シート1の、E1の301というデータ。 がでるようにしたいのですが、 VLOOKUPを使ってできますか? どのような関数の立て方したらいいでしょう? XPのExcel2003です。 よろしくお願いしますm(_ _)m

  • エクセルのワークシート関数でA、B列不同数取得

    エクセルのワークシートA列とB列にデータがあります。 データは数値、文字列、空白です。エラー値はありません。 A列のセルと同じ行のB列のセルの値が同一でないA列データの個数(またばB列データの個数)を求めるワークシート関数はないでしょうか?(空白同士は同一とみなします。) C列などに作業列を作ってA、Bの比較をして求める方法はすぐに思いつきますが、作業列なしで求めたいのです。

  • 関数 数式 Excel

    すみませんが教えてください! E列に下のような関数を入れたところ正しく表示されませんでした・・・ どうぞよろしくお願いします。 A列(数字・空白を含む)が 1 の場合”◎” A列が1以外の場合は B列(別シートから参照のVLOOKUP関数が入っている)と C列(別シートから参照ののVLOOKUP関数が入っている) を足した数字が D列(別シートから参照ののVLOOKUP関数が入っている) が同じなら ”OK” 違うなら ”NG" と表示させたいので =IF(A1=1,"◎",IF(D181=(B181+C181),"OK","NG")) としてみましたが"◎"が表示される表示は正しいのですが "OK" "NG"が正しく表示されません。 これに加えていずれのセルにも空白が存在するのでエラーを出さないようにしたいです。 よろしくおねがいします!!

  • エクセルのif関数のエラー

    エクセルでif関数を使ってデータ処理をしたのですが、上手くいき ません。何がおかしいのかが分からない状態で困っています。 状況  A B C D E 1 : + = ? 関数式 とセルに入力してあるとします。(A1=:,B1=+,C1==,D1=?) 関数式のセルに以下の様に入力しました。 =IF(ISBRANK(D1)=TRUE,E1="",VLOOKUP(D1,$A$1$B$15,2,FALSE)) 目的はVLOOKUPだけではD1が空白の時にE1にNAMEと表示されるのを 避ける事でした。 そうすうとD1にA列の数字を入力すると、それに対するB列をE1に 表示するようになるのですが、D1が空白の時はB1が表示されて しまってます。  また一旦D1に入力した後、D1をデリートして空白にしてもE1には もとの数値がそのまま表示されたままになってしまいます。 文章で表現している分、かなり分かりにくい説明になってしまって いますが、お詳しい方いましたらアドバイスお願い致します。

  • エクセルで複数のシートにまたがるデータを一枚にまとめる方法

    よろしくお願いします。 エクセルのシートが3シートあり、 シート1、シート2には従業員の名前、出勤日、売上高が一覧になっています。シート1、2の違いは月別となっています。 簡単に表にすると a,b,cという従業員がいた場合、 A列 B列 C列 a 4/1 3000 b 4/1 2000 a 4/2 4000 c 4/2 5000 b 4/3 2000 といったイメージなのですが・・・ それを今はそれぞれ月ごとに 人別にオートフィルターで検索し シート3に貼り付け人別の売上表にまとめています。 この場合だとシート1が4月シート2が5月の売上表だった場合、 シート3にaさんの4月5月の売上を一覧表にしています。 例では3人ですが、実際は人数が20人ほどいて、月別のシートも今後増えていきます。 シート3に検索条件aと入力したら シート2、3からVLOOKで値が抽出できるかとも試してみたのですが、 VLOOKは一番最上段のデータのみを抽出してしまうので断念しました。 今後の作業の効率化を考えると少しでも省略化したことを行いたいのですが・・・ なにかよいアドバイスがありましたらいただけると幸いです。