• ベストアンサー

Excel2007 。数値を記号化したいです。

セル範囲(A16:C2700)に、1~18のいずれかの数値がびっしり入ってます。 それらをセル範囲(E16:G2700)にアルファベット記号にして入れたいです。 1、2=A 3、4=B 5、6=C 7、8=D 9、10=E 11、12=F 13、14=G 15、16=H 17、18=I にしたいです。 範囲(A:C)の2700行目以降も3列1行目ずつ追加されるのでそれも同時に変換して(E:G)の2700行目以降にペイストしたいです。 お願い致します。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

E16に =CHOOSE(A16,"A","A","B","B","C","C","D","D","E","E","F","F","G","G","H","H","I","I") として必要なだけコピーしてください。

961awaawa
質問者

お礼

これだけで済む物なんですねぇ。Aの始まりが数値の1に相当するという解釈で宜しいですか?次のAは2に相当ですか?

その他の回答 (4)

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

y+64の意味は、アスキー文字のコード表を見てください。 コンピュターをやる人のまず初めに知ってないとならないことですよ。 https://www.k-cube.co.jp/wakaba/server/ascii_code.html ーー VBAでやれば A列にデータがあって、B列に英文字を出す場合 Sub test01() lr = Range("A1000000").End(xlUp).Row For i = 1 To lr x = Cells(i, "A") y = Int((x - 1) / 2) + 1 'MsgBox y Cells(i, "B") = Chr(y + 64) Next i End Sub これを ・セル範囲(A16:C2700)にする、下記例は"A1:F3にかんらやく簡略化したが、 ・置き換える 場合は Sub test02() Dim cl As Range For Each cl In Range("A1:F3") y = Int((cl - 1) / 2) + 1 cl = Chr(y + 64) Next End Sub === もう回答のパターンは、出尽くしたはず。 この質問を締め切るのが(OKWAVEの)ルールでしょう。

961awaawa
質問者

お礼

ありがとうございました。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.4

Sheet2 において、 下記の式を入力したセル A16 を選択 ⇒ Ctrl+C ⇒ その位置(A16)でファンクションキー F5 をツン ⇒ [参照先]ボックス内の A16 を A16:C10000 に上書き ⇒ [OK] ⇒ Ctrl+V =IF(Sheet1!A16="","",CHAR(CEILING((Sheet1!A16+128)/2,1)))

961awaawa
質問者

お礼

ありがとうございました。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

> Aの始まりが数値の1に相当するという解釈で宜しいですか?次のAは2に相当ですか? おっしゃるとおりです。 CHOOSE関数 https://kokodane.com/kansu_lookup_03.htm

961awaawa
質問者

お礼

ありがとうございました。勘も大事ですね。

回答No.1

  E16に =CHAR(64+A16/2) を入力し、このセルをE16:G2700の範囲にコピーすればよい

961awaawa
質問者

お礼

回答ありがとうございます。この64とは何にあたるのですか?

関連するQ&A