OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

ExcelのIF関数について

  • すぐに回答を!
  • 質問No.176946
  • 閲覧数48
  • ありがとう数0
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 49% (69/140)

A1 A=1
B2 B=2
C3 C=3
と設定してA2以降のA列のセルにそれぞれAかBかCを入力すると、B2以降のB列に最初に設定した数値を返すようにしたいのですが、いい方法はありませんか?
最初のB2に書き込む関数の書き方を教えていただけたら幸いです。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.4
レベル13

ベストアンサー率 68% (791/1163)

質問では変換パターンが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
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル14

ベストアンサー率 50% (1122/2211)

質問の最初の三行が何を表しているのか良く分からないんですが、A列にAかBかCを 入力すると、その行のB列に、それぞれに対応して1、2、3が表示されれば良いのですね。 であれば、B2 のセルに、以下のように書きます。 =IF(A2="A",1,IF(A2="B",2,IF(A2="C",3,""))) で、こ ...続きを読む
質問の最初の三行が何を表しているのか良く分からないんですが、A列にAかBかCを
入力すると、その行のB列に、それぞれに対応して1、2、3が表示されれば良いのですね。

であれば、B2 のセルに、以下のように書きます。

=IF(A2="A",1,IF(A2="B",2,IF(A2="C",3,"")))

で、このセルをコピーして、自動的に表示させたい行までのB列にコピーします。

式はあくまでも、そのセルに表示するものをどう加工するかを書くだけなので、
一つのセルに式を書いて、複数のセルの動作を決めるものではありません。

もし、記述を一個所にしたいのであれば、VBA でマクロを書くことになります。

  • 回答No.2
レベル8

ベストアンサー率 30% (8/26)

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,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列に
指定した値が出ると思います。
  • 回答No.3
レベル12

ベストアンサー率 55% (369/665)

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

A2に入れた場合、B2以降の列に数値を返すとありますが、これは別のシートでしょうか。それとも同一シートでしょうか?(同一だとB=2が上書きされる)

IF関数の使い方が判らないのでということですが、
もう少しきちんとお書きにならないと、回答も曖昧なものとなるのではないでしょうか?
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ