「みんな教えて! 選手権!!」開催のお知らせ

画像のようにローマ字を指定の数字に自動変換したいです。
例えばA=1、M=4、Z=8など。
上のローマ字と同じ位置の数字に変換したい認識です。
その場合、どのような数式(関数)にしたらよいでしょうか。

「エクセルの計算」の質問画像

A 回答 (7件)

Pythonを使ってローマ字を指定の数字に自動変換:



Python 1例:

def convert_roman_to_number(roman_string):
# ローマ字と数字の対応表を作成
roman_to_number = {
'A': 1,
'M': 4,
'Z': 8,
# 他のローマ字と数字の対応もここに追加できます
}

# 変換結果を格納するための空の文字列を作成
number_string = ''

# 入力されたローマ字の文字列を一文字ずつ処理
for char in roman_string:
# 対応表に該当のローマ字があれば、対応する数字に変換
if char in roman_to_number:
number_string += str(roman_to_number[char])
else:
# 対応表に該当のローマ字がなければ、そのままの文字を追加
number_string += char

# 変換後の数字の文字列を返す
return number_string

この関数は、ローマ字の文字列を受け取り、指定の数字に変換します
対応表roman_to_numberは、
変換したいローマ字と対応する数字を追加してください
対応表にないローマ字は、そのままの文字列となります

convert_roman_to_number('AMZ')='148'となる
Aが1に、Mが4に、Zが8に変換されただけです
ローマ字と数字の対応も必要に応じて追加します
関数を自分のニーズに合わせてカスタマイズしてください
コードはPythonです
Pythonがインストールされている環境で実行です
    • good
    • 0

アルファベットをご質問者がお示しになった画像の数字に、それぞれ置換したいという意味で、かつ、半角大文字のみでよいなら、



=IFERROR(MOD(FIND(置換対象アルファベット,"ABCDEFGHIJKLMNOPQRSTUVWXYZ")-1,9)/(LEN(置換対象アルファベット)=1)+1,"")

という数式ではいかがでしょう。
つまり、例えば「F」という文字を直接置換するなら

=IFERROR(MOD(FIND("F","ABCDEFGHIJKLMNOPQRSTUVWXYZ")-1,9)/(LEN("F")=1)+1,"")・・・・・・①

という数式になりますし、どこかのセル、例えばE1セルに対象アルファベットがあるなら

=IFERROR(MOD(FIND(E1,"ABCDEFGHIJKLMNOPQRSTUVWXYZ")-1,9)/(LEN(E1)=1)+1,"")・・・・・・②

という数式になります。
なお、半角大文字だけでなく、全角であっても小文字であっも置換する場合は、上記②のようにE1セルに対象アルファベットがあるとすると、

=IFERROR(MOD(SEARCH(ASC(E1),"ABCDEFGHIJKLMNOPQRSTUVWXYZ")-1,9)/(LEN(E1)=1)+1,"")・・・・・・③

とすればよいと思います。

また、①②③の数式は置換対象文字数が1文字だけかをチェックします。
つまり「F」と「FF」は区別され、Fは6が返りますが、FFは空白が返ります。
No.2さん、No.5さんの数式との違いをご確認ください。
    • good
    • 0

これは Excelの質問なの?


=IF((A1:C9=A1:C9)*(A1:C9<>""),SEQUENCE(9),"")

でいいならそれで。
    • good
    • 0

こんばんは



対象は半角英大文字のA-Zのみで良いとするのなら、変換前の文字がA1セルにあるとして、
 =IF((64<CODE(A1))*(CODE(A1)<91),MOD(CODE(A1)-65,9)+1,"")
の数式で可能と思います。

元の文字が2文字以上の文字列の場合は、最初の1文字で判断します。
複数文字は除外したい場合は、1文字であることのチェック(LEN(A1)=1)を条件に追加すれば可能です。
    • good
    • 0

別シートに変化したい数字を表にしておきlookup関数で変換して見てください。

    • good
    • 0

1の追記



Pythonを使わない方法:

Excelの機能を使ってローマ字を数字に変換:

Excelのシートに対応表を作成します


1:A列にローマ字(A、M、Zなど)
2:B列に対応する数字(1、4、8など)
3:C列に変換したいローマ字の文字列
4:D列に数式を入力
=VLOOKUP(C1, $A$1:$B$3, 2, FALSE)
C列のローマ字をA列とB列の対応表を使って数字に変換
VLOOKUP関数
指定の値(ここではC列のローマ字)を
対応表の最初の列(ここではA列)で検索
値が見つかった行の指定した列(ここでは2列目、つまりB列)の値を返す

この方法は一度に一つのローマ字しか変換できません
全てのローマ字を一度に変換には
各ローマ字を個別のセルに入力し
それぞれに対してVLOOKUP関数を適用

対応表にないローマ字が入力された場合:
VLOOKUP関数はエラーとなります
対応表にないローマ字は変換前に、対応表に存在を確認する必要です
    • good
    • 0

A1セルにアルファベットが入っている場合の式



=IF(CODE(A1)<74,CODE(A1)-64,IF(CODE(A1)<83,CODE(A1)-73,IF(CODE(A1)<91,CODE(A1)-82,"")))
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A