• 締切済み

エクセルの数式を教えてください。

こんにちは。タイトルどおりなのですが、自分ではエラー表示になって、どうにもなりません。よろしくお願いいたします。 例:シート1のH2のセルに入力をすると、G2に自動的に数字が入るようにしたいのです。 その数字はシート2のB列から引っ張ってきたいのです。 シート2のA列はH2のセルに入力する同じ数字が入っています。 判りにくいかも知れませんが、よろしくお願いいたします。 自分で作ると#REF!とか#N/Aが出てしまうのです。

  • msyk
  • お礼率90% (307/339)

みんなの回答

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

#6です。 ○シート1のH列と、シート2のB列の表示形式を「数値」にして見て、見比べてみてください。 なにか気付く相違点は有りませんか。 この両者にデータタイプに何かの相違があると推定されます(数字と文字、日付と通常数値や文字、余分なスペース等)。これ以外のパターンは極く可能性は少ないと思います。 ○#REF!に付いて やって見ると、VLOOKUP関数で#REFが出るのは (1)表の指定が1列しか指定してない =VLOOUP(A1,$D$1:$D$10,2,FALSE) (2)表に指定した列を超えた列番号を指定している =VLOOUP(A1,$D$1:$E$10,3,FALSE) (1)も(2)も同じタイプです。 これらは原因が直ぐつかめるので可能性は少ないと思いますが。

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

#5です。補足頂きお手数を煩わしました。 私が次のようにやると旨く行くようですが。 Sheet2に(Sheet2は意味ありません。Sheet1でも可) (A列)(B列) 170404 a 180404 b 190404 c 200404 d 210404 e 220404 f 230404 g A列は4/17や4/18をいれ、書式をユーザー定義の ddmmyyにしたものです。内容は内実は38094、38095などの数値に過ぎません。 Sheet3のB2に=VLOOKUP(A2,Sheet2!$A$1:$B$7,2,FALSE) を入れ、A2に4/7と入れると、「a」となりました。 4/20等でも下記のとおりです。 4月17日 a 4月18日 b 4月20日 d 4月21日 e テーブル(表)を表す第2引数で$を使っていないのでは ないですか。表の範囲が複写でずれると、結果がおかしくなります。

msyk
質問者

お礼

ご丁寧にありがとうございました。 私も同じようにしているのですが・・ 昼ごろからこの関数と格闘していて、もう諦めようかと。ほんと、お手数をお掛けして。感謝いたします。

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

2点疑問があります。補足すべきと思います。 (1)シート2のA列はユーザー設定でddmmyyとなっています との事ですが、日付で2004/4/7などのように入っていますか。数値に書式設定すると3万何がしなどの数字になりますか。(日付シリアル値)。文字列ではないでしょうね。 (2)用いている関数がVLOOKUP関数だとすると、(使っている関数名ぐらい質問に記すべきでは)、TRUE型とFALSE型があり、第4引数は何にしていますか。 具体的にG2に入れている関数式を書いても良いのでは。

msyk
質問者

補足

説明がかなり足りてないようで・・すみませんでした。 ddmmyyは入力時に4/17を入力すると170404と表示されるようになっています。文字列ではありません。 使用している関数はVLOOKUPです。第四引数はFALSEです。 数式は質問の際、わかりやすく例を挙げたので、ここにそのまま書いてしまうと余計わかりにくくなってしまいそうなので。 この補足も説明が足りなかったらすみません。

  • tizzy
  • ベストアンサー率51% (115/224)
回答No.4

シート2のA列がddmmyyということですか? シート1のH2に入力したものを シート2のA列から探すことになるので A列のデータは「昇順」に並んでいることが 条件になります。 その点はいかがでしょうか?

msyk
質問者

補足

ご協力ありがとうございます。 シート2のA列は昇順になってます。 言葉が足りなくてお手数をお掛けしてます。すみません。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

#1のmshr1962です。 ddmmyyということは日付ですか? ということはH2の内容が問題ですね。 2004/04/08は080404という表示ですが、 実際は38058というシリアル値になります。 B列の前に列を挿入して =TEXT(A1,"ddmmyy")+0 として下方にコピーしてください。Sheet1のG2は =IF(H2="","",VLOOKUP(H2,Sheet2!$B$1:$C$100,2,FALSE)) とします。 これなら大丈夫だと思いますよ。

msyk
質問者

お礼

本当にお手数をお掛けしまして・・。感謝してます。 でも、やはり同じエラーが出てくるんです。一体どうしたら良いのか。 本当にありがとうございました。

  • tizzy
  • ベストアンサー率51% (115/224)
回答No.2

現在、H2には何も入力されていないのでは? と思います。 H2に値が無いので、#N/Aが表示されます。 シート2が以下のようにある場合    A  B 1  1  10 2  2  20 3  3  30 4  4  40 5  5  50 H2にたとえば「1」を入力すると G2に「10」と表示させるということですよね? たぶん G2=VLOOKUP(H2,Sheet2!A1:B5,2) という式を入れていらっしゃると思います。 ちょっと手を加えて G2=IF(H2="","",VLOOKUP(H2,Sheet2!$A$1:$B$5,2)) にすれば上手くいくと思います。 1.H2が空白の時は何も表示しない 2.検索する範囲は$を付けて他のセルにコピーした 場合にも範囲がずれないようにする この2点が問題だったのではと思います。 こういうことでよろしいのでしょうか? 問題点が違っている場合には補足してくださいね(^^)

msyk
質問者

補足

ありがとうございます。でも・・出来ませんでした。#N/Aが出てきます。シート2のセルはユーザー設定でddmmyyとしています。 お時間がありましたら、よろしくお願いいたします。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

完全一致の場合、H2に該当するデータがないと#N/Aがでます。 =IF(H2="","",VLOOKUP(H2,Sheet2!$A$1:$B$100,2,FALSE)) 直前のデータを表示する場合 =IF(H2="","",VLOOKUP(H2,Sheet2!$A$1:$B$100,2,TRUE)) ただし、Sheet2のA,B列はA列で昇順の並べ替えが必要です。 #REF!が出るのは$がないため相対参照 #N/Aは完全一致でデータがないか、検索値に数字と文字型が混ざっているためだと思います。 シート2のA列が文字ならC列に=TRIM(A1)として下方にコピー A列に値として貼り付けしてみてください。

msyk
質問者

お礼

すばやい回答有難うございます。 しかし・・出来ないんです。#N/Aがどうしても出てくるんです。。ちなみにシート2のA列はユーザー設定でddmmyyとなっています。 またお時間がありましたらよろしくお願いいたします。

関連するQ&A

  • エクセルの数式をどのように入れたら良いでしょうか?

    エクセルの数式をどのように入れたら良いでしょうか? いつもこちらでお世話になっています。 今回も教えて頂きたく質問させていただきます エクセルについてですが、 sheet1に入っているデータを sheet2に入力するようにしたいのですが sheet1の A列に1~50までのNo. →A1セルにNo.1、A50セルにNo.50 B列に(1)データ C列に(2)データ があり sheet2の D5のセルに「1」と入力すれば、sheet1!A列の数字とリンクしてsheet!B1の(1)データが入り D6のセルに「10」と入力すれば、Sheet1!A列の数字とリンクしてsheet!C10の(2)データが入る ように設定し、 さらにsheet2のD5,D6のセルに上書きで(繰り返し)数字を入力させ 数式が消えないようにしたいのですが どのようにすればよいでしょうか? 分かりずらい説明で申し訳ありませんが 大変困っているので、アドバイス頂けると助かります。

  • エクセル 数式について

    皆さんこんにちわ。 現在エクセルで計算式を作らせようとしているのですが、 わからない事があったので質問させて下さい。 メインシート(シート1) A1セルに入力欄(数値記入)  B1セルにA1セルから出した結果  C1セルには別シートの対応した列の数値÷B1セルに入力した数値 別シート内容(シート2) A1 1 B1 20000 A2 2 B2 40000 A3 3 B3 60000 例で書くと シート1のA1セルに2 シート1のB1セルに2000  と書いてるとして シート1のC1セルには   「A1には2と入っているのでシート2の2って表示されている列のB2セルの40000÷B1セルの2000」の答えを表示させたいです。 ここでわからないのが別シートからの参照方法とその列の入力した数字の列のBセルの参照 方法です。(その行で2と言う数値がある列の別セルを参照させる) 少しわかりずらいのですが、上記に書いた事のやり方 どんな風にしたらいいのか、詳しい方ご助言下さいm(__)m

  • エクセル VBA

    最終行から順番に下へ同列で入力するVBAを教えて下さい。 EXCELのVBAで教えて下さい。 シート1のA列にはB列が入力されると自動入力されるNo.があり、C~G列もB列が入力されると自動入力されます。 B列には日付が、H列には3~4桁の数字が入力したいのですが、 入力行は必ず最下行のセルB、Gな為、VBAでフォームを作成し、 入力実行ボタンを押すことにより、最下行のセルB、Gに反映されるように したいです。 又、上記入力後に、シート2のH~N列をコピーして、シート3のA~G列に値のみの貼り付けを行い保存した後、シート3のA~G列をコピーして csvファイルを作成して保存したいです。 一連の流れを、フォームの入力実行ボタンを押すことで実行したいのですができるのでしょうか? 宜しく御願い致します。

  • エクセルで数式をコピー

    エクセルでシート1のE4のセルにシート2のH5の数字を表示できるようにしました。つぎに、シート1のF4のセルにシート2のH6、G4のセルにシート2のH7…の数字を表示させたいのですが、シート1のE4のセルをセルの右下に+印を表示させ、F4のセルに引っ張るとF4のセルはI5の数字が出るようになってしまいます。方法は無いでしょうか?宜しくお願いします。

  • エクセル2007 セルの移動でリンク先エラー

    エクセル2007で同シート内に、入力用の表と印刷用の表をそれぞれ作成しています。  例:A列入力用 B列印刷用・・・・B1セル(=A1)                        B2セル(=A2)   しかし、これだとA列のセルを移動させるとB列にエラーが発生してしまいます。  例:A4をA6に移動するとB4セルが(=A6)になってしまい、B6には[#REF!]がでてしまいます。  コピペは問題ないのですが、移動してもエラーがでないようにすることはできないでしょうか? 分かりづらい文で申し訳ありません。 よろしくお願いします。

  • エクセルで数字の自動入力について

    すみません。 現在、仕事でエクセルに自動で番号が振られていくシートを作りたいと思っています。 エクセル 2003 OS WINDOWS VISTA A1のセルから始まる表で例えばG1に"済”か”未"の文字が入力されるとA1のセルに『1』G2に入力されるとA2には『2』という具合に G列に文字が入力されると自動でA列に数字が入力される、という設定にしたいのです。 IFやVLOOKUPで挑戦してみましたが、いまいちうまくいきません。。。 どなたか、お詳しい方がいらしたらご教示お願いいたします。 

  • エクセルの関数の数式がわかりません。

    A列 B列 1 10 2 20 3 30 a 4 40 エクセルの関数の数式がわかりません。 B1~B4のどこかにaの入力があった場合、aの入力がある行と同じ行のA列に入力されている数字を別のセルに表示させたいです。 例えば、上記のようにB3にaがあるので、A3の30を、別のセルに自動で30と出るようにしたいです。 B列には、ランダムにaを入力しますので、aが別の行にある場合もあります。 この場合の数式を教えてください。 よろしくお願い致します。

  • Excel 数式保護のやり方

    Excelで、シートに数式がたくさん入っています。 Aのシートの、ある一箇所のセルに数字を入れると、 Bのシートから その数字の列の情報を引き出し、 Aシートの各セルに表示する仕組みにしてます。 Aシートは、その一箇所のセル以外は全て数式なので 触れないようにしたいのです。 1つのセル以外を保護で固める方法を教えてください。

  • EXCELの関数や数式について

    お世話になります。 EXCELで以下の数式が作れなくて困ってます。 Sheet1(すでに作成されている)のA1セルの内容  マウス:590円 キーボード:1,500円 CPU:18,000円  マウス~CPUまでひとつのセルに入力されてます。 これを、Sheet2のセルAに”商品名” セルBに”価格の数字”が自動的に代入されるようにしたいと思ってます。 数字の桁は最高で8桁までです。 Sheet2    セルA    セルB   1  マウス     590   2  キーボード  1,500   3  CPU     18,000   よろしくお願いいたします。

  • 《エクセル》配列数式について教えて下さい

    いつもお世話になります。 先日、このページで質問した時、配列数式について教えていただいて、例をもとに自分で作成しようとしたのですが、うまくいきません。 集計表A列とB列に項目行があり、別のファイル[Book1.xls]のSheet1にあるデータを羅列した表のA列とB列にある項目の2つのセルの内容に合致するデータ数をカウントする場合 =COUNTA(IF('[BOOK1.xls]Sheet1'!$A$2:$A$2000=$A1*'[BOOK1.xls]Sheet1'!$B$2:$B$2000=$B1)) と入力して、Shift+Ctrl+Enterキーを打ったのですが、「入力した数式にはエラーがあります」のエラーメッセージが出てきて、ヘルプを読んでみても解決方法がわかりませんでした。 お手数ですが、ご教授宜しくお願い致します。