エクセル関数IF文と別シートへの値の入力方法

このQ&Aのポイント
  • エクセルのIF文を使用して、B列に値が入力されている場合は別シートの対応するセルの値をC列に入力し、空欄の場合は何も入力しない方法を知りたいです。
  • また、空欄の場合には別シートの前の列番号の値をC列に入力する方法を教えてください。
  • 具体的には、C2が空欄であり、C3には別シートのA2の値が入力され、C4には別シートのA3の値が入力されるような関数です。
回答を見る
  • ベストアンサー

エクセル 関数 IF文

初歩的な質問かもしれませんが、教えて下さい。   A  B   C     別シ-トA 1 S001 M001        R001     2               R002 3 S002 M002        R003 4 S003 M003        R004 上のような表をつくり、C列には、B列に文字が記入されている物は 別シ-トAの項目を入れ込み、空欄のものは何も書かないようにしたいと 考えて、IF(B2="","",B!B2) をC列に入れてあげると、R002は永遠に 盛り込まれなくなってしまっています。 これに、もし空欄があれば別シ-トの前の列番号を持ってくる方法はないのでしょうか? 言い回しがへたくそで申し訳ないのですが、 C2は空欄でかつ、C3には別シ-トA2、C4には別シ-トA3を 入れ込めるような関数を教えて下さい。

  • siw
  • お礼率50% (2/4)

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

次の方法は如何でしょうか。 =IF(B1<>"",INDIRECT("A!A"&ROW()-COUNTBLANK($B$1:B1)),"")

siw
質問者

お礼

できました。ありがとうございます。 もう1つ疑問なのですが、 =IF(B1<>"",INDIRECT("A!A"&ROW()-COUNTBLANK($B$1:B1)),"")の <>"" と &ROW()-COUNTBLANK はどういう意味なのですか

その他の回答 (2)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

NO2です。 ■<>""  <>は≠(不等号)の意味で""(空白)を合わせると「空白以外」となり、少々雑ですが何か入力されている事になります。  私の趣味で処理数式をIF関数の真の場合に当て嵌めたいからです。 ■&ROW()-COUNTBLANK  ROW(現在セル)の行番号からCOUNTBLANKでB1からの空白セルを数えた分、現在行番号から減じる事で抽出シートの連続行番号になると想定したからです。

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

一見してシート名に矛盾がないのかな。   A  B   C     1 S001 M001         2                3 S002 M002         4 S003 M003         のシート名は何? ーー 別シ-トA R001     R002 R003 R004 ということはシート名はAですね。 ーー > IF(B2="","",B!B2) を のB!はA!では? ーー 何をしたいのか、文章でもあわせて、書いてみてください 一例からは推し量れない場合が多い。 前半をシート名をBとして、対応する行のデータを採るなら =IF(B2="","",A!B2)と入れて式を縦方向に式を複写すればよい。しかしこんな単純なケースが問題になるのかな。 VLOOKUP関数を使うような問題のような臭いもするが。

関連するQ&A

  • IF、VLOOKUP関数

    (1)A4=IF(F4>0,"M-1"," ") A列にこの式をコピーすると全A列がM-1になるが、 A5は「M-2」、A6は「M-3」・・・ としたい。 (2)C4=VLOOKUP(C4,$C$5:$D$9,2) C4が空白の場合「#N/A」となるが、空欄にしたい。 以上二点、ご教授下さいm(__)m

  • ExcelでのIF関数について

    説明不足で分かりにくいかもしれませんが ExcelのIF関数を用いて参照させる方法で式を簡略化させる方法を探しています。 セル内の式に只今IF関数を 次のように組み立てているのですが この式のC3部分を+1ずつずらして表示させたい場合フィルを使うと全体的に+1ずつずれてしまいます ------------------- =IF(C3=R30,S30,IF(C3=R31,S31,IF(C3=R32,S32,IF(B3E3=R33,S33,IF(C3=R34,S34,IF(C3=R35,S35,IF(C3=R36,S36,IF(C3=R37,S37)))))))) -------------------- 式代入 -------------------- =IF(●=R30,S30,IF(●=R31,S31,IF(●=R32,S32,IF(B3E3=R33,S33,IF(●=R34,S34,IF(●=R35,S35,IF(●=R36,S36,IF(●=R37,S37)))))))) の●のみ変更したい時 普通にコピーフィルを使うと =IF(C4=R31,S31,IF(C4=R32,S32,IF(C4=R33,S33,IF(B3E3=R34,S34,IF(C4=R35,S35,IF(C4=R36,S36,IF(C4=R37,S37,IF(C4=R38,S38)))))))) =IF(C5=R32,S32,IF(C5=R33,S33,IF(C5=R34,S34,IF(B3E3=R35,S35,IF(C5=R36,S36,IF(C5=R37,S37,IF(C5=R38,S38,IF(C5=R39,S39)))))))) となってしまいます。 ----------------------- =IF(●=R30,S30,IF(●=R31,S31,IF(●=R32,S32,IF(B3E3=R33,S33,IF(●=R34,S34,IF(●=R35,S35,IF(●=R36,S36,IF(●=R37,S37)))))))) の式のまま ●のところを C3セル~C200セルまで代入 したい場合 置き換えする以外に 早い方法ありますか?

  • IF関数で

    AとB列に数値(空欄もあり)が入力してあります。 C列にAかBに数値が入力してあれば○を表示したいのですが CもBも空欄の場合は非表示です。 =IF(A1="","","○")に何を追加すればよいでしょう?

  • IF関数(?)について

    初めまして、関数で解らない事があるので、教えて下さい。 最終的に下の表のようにしたいのですが、A列とB列にはあらかじめデーターが入力されています。 C列を下のように表示するには関数どうしたらいいでしょうか? 宜しくお願い致します。  A B C 1 使用年 使用月 使用年月日 2 2010 05 2010-05 3 0 0    ー 4 空欄  空欄   空欄

  • Excel if関数の正誤の考え方

    こんにちは。 MOS Excel 2010 Expertの問題集を解いています 問題はシートに A1~A40 生徒名 B1~B40 1回目テスト結果 C1~C40 2回目テスト結果 が入力されています。 配列を使って、各生徒の良い方の成績で セルD1に平均を求めなさいというものです。 正解は =average(if(B1:B40>C1:C40,B1:B40,C1:C40)) と、セルD1に入力して Ctrl+Shift+Enter だと思うのですが。 問題集の正解は =average(if(B1:B40>C1:C40,C1:C40,B1:B40)) とB列とC列が逆になっています。 これは問題集が間違っていると思うのですが 私の考え違えでしょうか?

  • エクセルで複数のセルの合計をIF関数も含めて出す方法

    初歩的だと思うのですが・・ 異なった文字が入った各セルの合計を別セルにてIFを使用し、数字を出しながらなおかつ集計する方法がわかりません。  A   B    C   D 1 い   ろ 2     は   に   3 ほ       4 へ   と 5 A列に文字が入ると常に 500 B列に文字が入ると常に 200 C列に文字が入ると常に 100 として、D列にA-Cの合計(何もなければ空欄)を出したいのです。この場合だとD1=700, D2=300, D3=500...となるように。 IF(A1="","",500)+IF(B1="","",200)+IF(C1="","",100) のちゃんとした関数式を教えてください。よろしくお願いします。。

  • IF関数について

    エクセル2013使用です IF関数について教えて下さい A1が空欄だった場合はB1×B2の答えを A1が空欄ではない場合はC1×C2の答えを D1に表示させたい場合の数式を教えて下さい 初歩的な質問でゴメンナサイ お願い致します

  • エクセル(書式の設定かif関数?)について質問です

    エクセルで、隣のセルに特定の文字列が入った場合、自動的に文字を書き出すにはどうしたらいいでしょうか。 例) R12C3に、Aという文字を入れたとします。するとR12C4には○という文字が自動的に入力され、R12C3にBという文字を入れたときにはR12C4には×と入力される 数字がいくつ以上いくつ未満の時は~みたいなのは見つかったのですが、文字列の場合は見つけることができませんでした。以上のようにする方法を教えてください。よろしくお願いいたします。

  • エクセルの条件付きの関数(IFなど)の使い方

    よろしくお願いします。 エクセルの表計算で、例えば、”おこづかい帳”のような、収入または支出を各行ごとに一番右の合計欄に自動で計算していく方法について質問します。 例として、3列2行の表で説明します。 A列は収入、B列は支出、C列は残高です。 一行目のA1、B1、C1は最初の一日目なのでC1セルだけに当初のお金500円が入力されています。二行目のB1またはB2の必ずどちらか1つだけに(収入か支出の)金額が入るとしてその時のB3の残高を自動で算出したいです。(実際の表は、それの繰り返しで何行も下に続いていきます。)B1に収入が200円あれば、B3は700円になり、B2に支出200円があれば、B3は300円になるような計算です。 次のような三つの条件になります。 (1)B1(収入)が空欄の時はB2(支出)の値を用いて、B3=A3-B2(2)B2(支出)が空欄の時はB1(収入)の値を用いて、B3=A3+B1 (3)B1、B2ともに空欄の時は、なにも計算しない(B3も空欄になる) そして、B3に入れる式としてこのような式を作りました。 =IF(OR(B1="",B1>0,B1B2=""),(B3=A3-B2,B3=A3+B1,B3="")) しかし、うまく計算されません。 どこを直せばよいでしょうか?またはIF以外の関数で必要なものがあるのでしょうか?

  • IF関数です

    A2が空欄ならB2は空欄でA2が空欄以外ならB2にC2からもっていくようにしたいのですが 教えてください。

専門家に質問してみよう