• ベストアンサー

ExcelのIF関数について

A1 A=1 B2 B=2 C3 C=3 と設定してA2以降のA列のセルにそれぞれAかBかCを入力すると、B2以降のB列に最初に設定した数値を返すようにしたいのですが、いい方法はありませんか? 最初のB2に書き込む関数の書き方を教えていただけたら幸いです。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

質問では変換パターンが3個ですが、実際はまだたくさんあるかもしれない? また、入力範囲が分からず、個人的にはたくさんの算式を登録するのが嫌いなので、関数でない方法を回答します。 Sheet1を使うとして、ツール→マクロ→Visual Basic Editor でVBE画面に移り、 VBE画面で、表示→プロジェクトエクスプローラ でプロジェクトエクスプローラを表示し、その中のSheet1をダブルクリックします。 出てきたコードウインドウに下記マクロを貼り付けます。 変換パターンがたくさんある場合は『'』をはずしたり、追加してみて下さい。 終わったら、ワークシートに移りA列に入力してみます。シートには関数とかは何もセットしません。 こんな方法もあるということで参考にして下さい。 Private Sub Worksheet_Change(ByVal Target As Range)   Dim rg As Range '操作したセルのひとつ   Dim rgStr As String '操作したひとつのセルの値   On Error GoTo ErrorHandler   For Each rg In Target     If rg.Column = 1 And rg.Row >= 2 Then 'A2以下に入力       rgStr = rg.Value       Select Case StrConv(rgStr, vbUpperCase + vbNarrow)         Case "A": rg.Offset(0, 1) = 1         Case "B": rg.Offset(0, 1) = 2         Case "C": rg.Offset(0, 1) = 3         'Case "D": rg.Offset(0, 1) = 4         ' :         ' :         'Case "Y": rg.Offset(0, 1) = 25         'Case "Z": rg.Offset(0, 1) = 26         Case Else: rg.Offset(0, 1) = ""       End Select     End If   Next   Exit Sub ErrorHandler: End Sub

その他の回答 (3)

  • yohsshi
  • ベストアンサー率55% (369/665)
回答No.3

A1には(B2、C3も)『A=1』という文字列が入っているのでしょうか? それとも1という数字なのでしょうか? A2に入れた場合、B2以降の列に数値を返すとありますが、これは別のシートでしょうか。それとも同一シートでしょうか?(同一だとB=2が上書きされる) IF関数の使い方が判らないのでということですが、 もう少しきちんとお書きにならないと、回答も曖昧なものとなるのではないでしょうか?

  • Exceler
  • ベストアンサー率30% (8/26)
回答No.2

A,B,Cそれぞれの数値の設定を斜めではなく、 同じ列に設定すれば VLOOKUP関数が使えます。 例えば 行/列  A B C  1   A 1  2   B 2  3   C 3  4  5   A と入力して、B5の列に =VLOOKUP(B4,$A$1:$B$3,2) と入力して下の行へコピーしてください。 A列に入力した文字によってB列に 指定した値が出ると思います。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

質問の最初の三行が何を表しているのか良く分からないんですが、A列にAかBかCを 入力すると、その行のB列に、それぞれに対応して1、2、3が表示されれば良いのですね。 であれば、B2 のセルに、以下のように書きます。 =IF(A2="A",1,IF(A2="B",2,IF(A2="C",3,""))) で、このセルをコピーして、自動的に表示させたい行までのB列にコピーします。 式はあくまでも、そのセルに表示するものをどう加工するかを書くだけなので、 一つのセルに式を書いて、複数のセルの動作を決めるものではありません。 もし、記述を一個所にしたいのであれば、VBA でマクロを書くことになります。

関連するQ&A

  • Excelの関数について

    Excelの関数について 今表を作っていて 1日数回データを取って それを1ヶ月ぐらい続ける予定で その結果をExcelの表に入力したいと思っています。 A列に現在値 B列に増加分 C列にA+Bの値を入れたいと思っています。 なので、C列には、C1には=SUM(A1,B1)として セルの右下にポインタを合わせて十字で下まで引っ張って関数をコピーしています。 で、そうするとC列に0が表示されてしまい それはなんとか、ツール→オプション→表示→ゼロ値のチェックを外して解決したのですが C列の合計値は次の行のAのセルに表示したくて 例えば C3の数値はそのままA4に C7の数値はそのままA8にといった感じで で、A2のセルに=C1とかA5のセルに=C4とかしたのですが いちいち関数を埋め込むのは面倒くさいので 下のほうまで関数をコピーしたところ 関数が埋め込まれているので A列とB列にしたの方まで同じ数字が表示されています。 これって消すことはできないのでしょうか? 現在は 最初のA1セルだけに数値を入れたのですが関数を埋め込んだことにより A列とB列すべてにA1セルの数値が表示されています。 まだデータを取っていないのでB列は空白です。 ただ、できれば、下の方に数値が表示されないようにしたいんです。 言葉で説明すると A列とB列に数値が入力されない限り、C列の合計値は表示されない設定にできれば 私の言っているような状況になると思うのですが、そういう事はできないのでしょうか… 教えてください。

  • エクセルのIF関数について質問します。

    C列のセルに、もしA列のセルの数字がゼロならば-を表示し、ゼロ以外ならA列とB列の積を表示するようにしたいのですが、A列のセルが未入力のでもゼロと数えられるのかC列には-が並んでしまいます。Aに数値を入力し時だけ、Cを表示をする方法を教えて下さい。よろしくお願いします。

  • エクセル関数について

    エクセル関数について質問です。 簡単に説明すると特定のセルに特定の数値を入力するとその行の別のセルの数値を別のセルに表示させたい。 たとえば     A      B       C 1  100            2  200      1      100 3  300      1      300 4  400 5  合計            400 上記の様になっていた場合 A列は定数で固定です。B列のセルに1と入力(1でなくてもよい)した行のA列の数値を Cに表示したいのですが、 C列にどの様な関数を使ったらいいんでしょうか?宜しくお願い致します。

  • Excelの関数『IF』にて・・・

    EXCELにて、関数IFを使って一覧表から 自動入力をしたいと考えています。 例えば、以下のようにしてセル『C1』の数字に 応じて、自動を試みたい時 =IF($C$1>80,"=A1",IF($C$1>70,"=B1","=C1")) =A1,=B1,=C1 の場所を文字列としてしか読み取ってくれません =A1,=B1,=C1では無く=A1,=B1,=C1のセルに入力されてる 数式(他のセルの値)を、表示したいんですが どのようにすれば可能でしょうか? 何度やっても「=A1」と、そのまま文字列として出て来ちゃいます。

  • エクセル IF関数が入った条件付き書式について

    エクセルにおいて、セルA1、B1、C1があるとします。A1、B1には数値が何も入力されていない状態で、C1に計算式「=SUM(A1)/B1」が入っているとします。このままでは、C1は、「#DIV/0!」と表示されます。 この表示を消すために、C1にIF、ISERROR関数を使い、「=IF(ISERROR(SUM(A1)/B1),"",SUM(A1)/B1)」の計算式を入力します。 このままでもいいのですが、C1の値が「10以上」になった時に、C1のセルに色を付けたいのです。 書式→条件付き書式→セルの値が→次の値以上→10 にすると、セルに何も値が入っていない(空白)状態で色だけが付いてしまいます。 色々調べると、IF関数の""の空白が文字列のため、数値より大きいとみなされている事が原因っていうことは、分かりましたが、色々試してみても出来ません。何かいい方法はございますでしょうか? ご教授お願いします。

  • エクセル関数 IF関数で出来ませんかね

    エクセル関数 IF関数で列への書式設定をしているのですが、私が考えていることが出来ません。お力をお貸ししてください。   A列    B列    C列  請求書   領収書  備考欄 1 ○  2 不要         TEL 3 ○ 4 5 不要         TEL A列はユ-ザ-定義で[=1]"○";"不要"としており、問題はC列へのA列での「不要」となった場合にTEL(=A1とし、セルの書式設定[=1]"":"TEL")でコピ-で自動的に表示させられるのですがA列へのデ-タが莫大に多いもので、IF関数で試行錯誤しています。 =IF(A1=1,"","TEL")でコピ-も考えたのですが、未入力(A4)の場合もTELで表示されます。C列をいっぺんに指定してIF関数で出来ないものでしょうか?  

  • エクセルでのIF関数:この場合どうすれば?

    IF関数を使うと思うのですが、このような場合どのように入力すればよろしいのでしょうか? 特定のセル(たとえばC1のセル)にマイナスの数字もしくは、プラスの数字もしくは空白が入力されており、たとえばB1のセルに関数を入力するとき C1に空白以外の数値が入力されている場合に限り、A1に入力されている数値をB1のセルに入力(反映)させたい場合。 また同時に、C1が空白の場合、B1も0ではなく空白にしたい。 どなたかご教授ください。よろしくお願い致します。

  • Excel 関数について

    Excel 関数について データにちょっと数値を追記したいのですが、頭が混乱して何をやっているかわからなくなり、質問させて頂きます。 D1セルに以下セルの数値を入れたいのですが・・・ A1セルが0の時はB1セルの数値を。。でもA1セルに0以外の数値が入っている時はそれをD1セルに入れる。 B1セルも0の時はC1セルの数値を。。でもB1セルに0以外の数値が入っている時はそれをD1セルに入れる。 要するにA列B列C列にはそれぞれ数値が入っているのですが、A列とB列は0のところもあり。。。 列の優先順位としてはA列を最優先としてB列→C列の順に優先列の数値が0の時は最終的にはC列の数値が入るようにしたいです。 説明もわけがわからなくてすみません~どなたか教えて下さい(>_<)

  • ■EXCELでこんな関数なんですが・・・教えて!!

    たとえばA列のセルに任意の数値が入力されています。B列のセルにある条件で日付が入力されます。そして別のセルにB列の日付が入力されるごとに隣接するA列の数値を合計していく関数なんですが。よろしくお願いします。

  • Excelの関数について

    [C1のセル値]-[A1またはB1のセル値] を使って計算したい場合の計算式を教えて下さい。 A列、B列、C列には具体的な数値を入力します。 D列にその結果を表示させる関数を入力したい。 と考えています。 但し、以下の条件を満たす事が必須となります。 (1)A、B、またはCのセルが未入力の場合はDは空白セルのまま。 (2)A、Bいずれかの一方が入力されている場合はCの値を使って計算し結果を表示。 (3)A、Bいずれも入力されている場合はBを優先してCの値を使って計算し結果を表示。 よろしくお願いします。

専門家に質問してみよう