• 締切済み

EXCEL 条件によって異なる関数を使用したい

特定のセルに数字を入力すると、その数字に対応する関数式が呼び出される・・・といった動作は可能でしょうか? 例えば A1に「001」と入力するとB1には他のファイル(ブック)の所定のセルの文字列をもってくるものです。 予め同一フォルダには1年1組全員のファイルが納められ、 001さんは「1年1組_001.xls」 002さんは「1年1組_002.xls」 003さんは「1年1組_003.xls」 ・・・ というファイル名がつけられています。 管理台帳ファイルの「国語」シートのA1に、例えば“001”と入力するとB1には「1年1組_001.xls」の「国語」シートの同じセルに記入してある国語の点数を参照させたいものです。 管理台帳のB1には仮に関数式が  ='[1年1組_001.xls]国語'!$B$1 と記載されていればOKなのですが、 A1に“002”と入力すれば関数式は  ='[1年1組_002.xls]国語'!$B$1 と変わるべく機能して欲しいものです。 ='[1年1組_***.xls]国語'!$B$1 “***”の文字列のみA1を反映させたいわけです。

  • kinco
  • お礼率33% (227/681)

みんなの回答

回答No.3

#1です。 実際に名前は001、002、003・・・・と名づけられているのでしょうか? もしそうであればその名前によるエラーかと思います。 数値として001は入力できませんので、'001としているのではないかと想像しますが、その場合文字認識となりますので。 頭が0以外の別の名前をつけて試してみていただけますか?

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

=INDIRECT("'[1年1組_" & $A$1 & ".xls]国語'!$B$1") でいけると思います

kinco
質問者

お礼

ありがとうございます。 しかし #REF! が表示されてセル参照がうまくいって無いみたいです。 もう少し調査いたします。

回答No.1

試してはいませんが、indirect関数でできませんか? =INDIRECT("'[1年1組_"&A1&".xls]国語'!$B$1")

kinco
質問者

お礼

ありがとうございます。 しかし #REF! が表示されてセル参照がうまくいって無いみたいです。 もう少し調査いたします。

関連するQ&A

  • エクセル関数VLOOKUPの範囲の一部をセルで指定

    ファイル名2103.XLSあるとして、その2103.XLSファイルとは別のファイル名集計.XLSに、その2103.XLSファイルから関数VLOOKUPでデータの値を返したい場合、式の範囲には普通は [2103.xls]Sheet1!$A$1:$B$10 と入力されますが、この範囲の一部分をセルで指定できないでしょうか。例えば、ファイル名集計.XLSのA1セルに文字列で"2103"と入力されているとしまして、式の範囲 [2103.xls]Sheet1!$A$1:$B$10 の2103部分を[A1.xls]Sheet1!$A$1:$B$10のような式は出来ないでしょうか。

  • Excelの関数で、検索条件(複数)を満たす場合値を返す方法について質

    Excelの関数で、検索条件(複数)を満たす場合値を返す方法について質問です。 セルA2にある文字列が、別ファイルのA列にある文字列を含む場合セルB2に○を、含まない場合は×を入力する関数を教えて下さい!! --------- book1.xls シート1 A2にある文字列が、 book2.xls シート1 A列にある文字列のいずれかを含む場合、 book1.xls シート1 B2に「○」を、含まない場合は「×」を結果として反映させたいです。 ※book1.xlsのリストは全角カナ、book2.xlsのリストは半角カナ です。 ※book2.xls シート1にある検索条件は行列共に増える可能性があります。 マクロやVBAではなく関数で行うことは可能でしょうか? 勉強不足ですみません。 色々調べて試しているのですが、なかなかうまくいかないのでお力をお貸し下さい。 よろしくお願いします。

  • Excel INDIRECT関数の使い方が分からない

    表という名前のSheetがあります。  A 4 1 5 2  : のように、表SheetのA4から下に連番で、    1~400まで数字がふってあります。 式という名前のSheetが式~式(399)まで、400Sheetあります。 400Sheetある式というSheetには表があり、入力されて文字は違いますが、表の配置は全く同じです。 式  のD6セルには 1。Q9セルには「あいうえお」と入力、 式(1)のD6セルには 2 Q9セルには「かきくけこ」と入力されています。 式Sheetが400枚あるので、D6セルには、400まで数字が連番で入力されています。 表SheetのA4セルが、もし空という前提で、1と入力した場合、式~式(399)までのSheetの中から一致した数字が合った場合、そのSheetのQ9のセルの値を返しなさい‥と関数を入れたいと思い、 「INDIRECT」関数を使用しました。 =INDIRECT("式(" & A4 & ")'!D6"  しかし、何度入力しても、REFと出てしまいます。 この関数を使用するのは初めてで、戸惑っています。 どうかご教授ください。

  • エクセル 関数を使っての自動転記について

    ネットでいくつか検索してみましたが、こちらの検索方法が悪かったためかヒットしなかったので 改めてこちらで質問させて頂きます 今回の質問内容ですが、例えばの話シートAのA列の1行目に1組、2行目に2組、3行目3組と入力してあり、それがシートBのA列にも同じく1組、2組、3組・・と同じように表示したいというものです それだけでしたらイコールを使えば良いのですが、さらにシートAの1組、2組、3組と追加でその下の4行目に4組と入力した場合、シートBにも自動で3組の下の行に4組と入力されるようにしたいというものです (例えばの話なので1行目の文字がりんご、2行目の文字がみかんといったように数字以外になる事ももちろんあります) OFFSET関数やCOUNTA関数を使って、シートAの空白以外のセルを数えて、そのセル数分だけ シートBにデータが表示されるようにしたいのですが具体的な関数の組み合わせが分かりません 不明な点御座いましたら追記にてお答えしますのでお分かりになる方がいらっしゃいましたら ご教授の程お願いします

  • ExcelのVLOOKUP関数で時刻を扱うと

    こんばんは。 提出用の勤務表を作ろうと思っています。 ほぼ同じフォーマットで、入力用(a.xls)と提出用(b.xls)のファイルが2つあります。 2つのファイルに入力するのも手間なので、VLOOKUP関数で時刻だけ呼びだそうとしましたが、0:00になります。 どうしてでしょうか。 A列に日付、B列に始業時間、C列に終業時間を入れています。 始業時間を呼び出すのは日付を検索値にしたので、関数式はVLOOKUP($A1,[b.xls]Sheet1!$A$1:$c$31,2,TRUE)で合っていると思います。 どちらも表示形式は"h:mm"です。

  • エクセル関数を使いこの様なことができますか?

    こんにちは エクセルのあるセルに数式(又は関数)を入力し、別のセルに数字を入力したら、セルの塗りつぶしの色が設定しておいた色に変わるようなことはできないでしょうか? (例えば、C1には当初は何も入力されておらず、そのC1にある数字を入力するとA1のセルの色が赤に変わるようなことを考えています。なお、色を変えたいセル自身には数字が入力されている場合といない場合と二通りあるため、いずれの場合も対応できるようにしたいのです。 つまり、初期状態では、A列(色を変えたいセル列)には数字が入ったセル、入っていないセルが混在しており、C列(ここに数字が入力されるたびにA列の対応する行のセルの色を変えたい)には何も入力されていない。この状態で、任意のC列のあるセルに数字を入力すると同じ行にあるA列のセルの色を変えたい、ということをしたいのです。) 具体的にA列にどの様な数式を入力すればよいかを教えて下さい。 (或いは、そのようなことをするための式(関数)はA,C以外の列のセルに入れる必要があるかもしれませんが(例えばB列)、それでもかまいません) よろしくお願いします。

  • EXCELのVLOOKUPとCOUNT関数に関して

    初めまして。 多少複雑な関数になるかと思いますがよろしくお願い致します。 添付画像のようなデータがあるとして(ブック2つ、シート3つ)、 売り主、買い主両列の会員から(メイン.xls シート1のA列、B列) 年会費を支払っていない会員(会員情報.xls シート1のB列)の 人数(メイン.xls シート2の「ここに人数」セルに結果を反映)を求めたいのですが、 これを実現出来る関数を教えて下さい。 年会費を既に支払っている会員には「済み」が入力してあり、 支払っていない会員は空白のままにしてあります。 出来るのであれば、マクロや作業欄を新たに設けず、 「ここに人数」のセルのみで対応できる関数があれば幸いです。 説明至らない箇所が御座いましたら申し訳御座いません。 何卒よろしくお願い致します。 環境 EXCEL2007 (ファイル保存形式は97-2003 ブックです)

  • EXCEL関数について

    EXCEL関数について EXCEL2003を使用しております。 お知恵を拝借願います。 Sheet1、A列、A2~A100セルに「1~10」の数字がランダムに入力されています。 数字は「グループ1」、「グループ2」・・・「グループ10」という意味です。 Sheet1、B列、A2~A100セルに「1~20」及び、「OK」、「NG」がランダムに入力されています。 Sheet2、A列、A2~A21セルに「1~10」までの数字(グループ)が順に入力されており、 Sheet2、1行目、B1~W1セルに、「1~20」及び「OK」、「NG」が順に入力されております。 ここで、Sheet2のB2セルに、Sheet1にて「グループ1」は 「1」をいくつ選択しているかを返す式を入れたいのですが、 SUMIF?COUNTIF?等でいろいろと試してみたのですが、うまくいきません。 同じように、C2セルであれば、「グループ1」は「2」をいくつ選んでいるか。 W5であれば、「グループ4」は「NG」をいくつ選んでいるかの式を入力したいのです。 拙文乱文、大変恐縮ですが、ご教示頂きたく何卒宜しくお願い致します。

  • エクセルの関数についての質問です

    エクセル2010で A1のセルに「○」が入力されると +3 A2・A3・A4 のセルはどこか一箇所にでも○が入れば、1を足します。 二箇所、三箇所に入っても 1しか足しません。 その合計数をBの列に表示させるようにしたいのです。 Bの1~4のセルは結合されています。 すべてに○が入った場合は、B列の数字は 3+1=4 A1にしか○が入らなかった場合のB列の数字は3になります。 3+0=3   A   B   1 ○ 2 ○ 3     4 4 ○   ○が入れば、3を足す  一箇所にでも入れば1を足す それぞれ別の関数は出来たのですが ふたつの条件の合計を出す式が出来ません。 非表示の列を作って、そこにまずは別々に数字を出して それを合計させる手もあると思うのですが 列を増やしたりせずに、関数だけで、B列に数字が入るようにしたいのです。 うまく伝わりますでしょうか どうぞよろしくお願いします。

  • エクセルのVLOOKUP関数で他のブックから正しく参照されないセルがある

    台帳xxxx.xlsファイルで住所録.xlsファイルを参照しているのですが最近正常動作しません。 住所録.xls というブックには、メンバーの住所録が入っています。 A列氏名、B列フリガナ、C列電話番号 という項目になっています。 台帳xxxx.xls側には A列連番、B列氏名、C列フリガナ、D列電話番号・・・になっています。 例えば台帳0712.xls というブックには日々のメンバーの動きを記録しており、 Bのセルに氏名を入れればその右側にフリガナ、電話番号が、住所録.xlsから参照されて自動入力されるようになっています。 台帳ファイルは原本を複製して 台帳0713.xls、台帳0714.xls・・・と日々増えていきます。 現在、住所録.xlsは600行を超えてきたのですが、最近、台帳xxxx.xls に氏名を入れるとフリガナ、電話番号の欄がうまく参照されず"0"(ゼロ)と表示されてしまいます。 正しく表示される名前とされない名前が出てきました。 600番台以降の人に多い気がするのですが定かじゃありません。 なぜならその氏名を上位のセルにコピーしても参照結果が"0"だからです。 具体的には、 例えばC列の数式は =IF(B2="","",VLOOKUP(B2,[住所録.xls]sheet!$A:$C,2,FALSE)) で、フリガナが自動入力されるようになっています。 ※氏名が未入力のときは"#N/A"のエラー表示がされないようにしています。 どうして"0"が入ってしまう場合があるのでしょう。 行数に限界があるのか疑問です。 またはもっといい方法があれば教えてください。

専門家に質問してみよう