[[20040831130230]] 『数字を漢数字にするにはどうしたら?』(とんぼ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『数字を漢数字にするにはどうしたら?』(とんぼ)

[数字を漢数字にするにはどうしたらよいでしょうか?]

「1234567890」を「壱弐参四五六七八九〇」で表したいのですが、

NUMBERSTRING関数を使ってみたのですが、
「123」が「壱百弐拾参」となってしまいます。

例として

「256」なら「弐五六」

「301」なら「参〇壱」

「2891」なら「弐八九壱」というふうに、

千、百、拾を省きたいのです。

教えてください。お願いします。


 表示形式のユーザー定義で [DBNum2]# とするのはいかがですか?
ただし、五が伍になりますが・・・
ついでに、伍を五に置換える式を追加しておきます。
=SUBSTITUTE(A1,"伍","五")
  (Hatch)


hatchさん、早速教えていただき本当にありがとうございます。

言われた通りしてみると出来たのですが、

セルに数式が入っていると、反応してくれない箇所があります、

何か方法があるでしょうか?宜しくお願いします。


 前に、こちらの学校で教えて頂いたユーザー関数です
 ’←の所を変更してお試し下さい 
 (takuto)

 '半角英数字を漢数字に変換するユーザー関数
  Function n2kan(ByVal Num As String) As String

    Dim Suji As String, I, N As Single

    Suji = ""
    For I = 1 To Len(Num)
        N = InStr("1234567890-", Mid(Num, I, 1))
        If N = 0 Then
            Suji = Suji & Mid(Num, I, 1)
        Else
            Suji = Suji & Mid("一二三四五六七八九〇h", N, 1) ’←
        End If
    Next I
    n2kan = Suji

  End Function


 >セルに数式が入っていると、反応してくれない箇所があります、
どのような数式で、どのような値が返ってきていますか?
そして、どのようになりますか?  (Hatch)


 ついでに、
 =NUMBERSTRING(A1,3)
 これも試してみてください。
(夏目雅子似)


 すみません。おおぼけでした。m(__)m
(夏目雅子似)


 あっ、=SUBSTITUTE(A1,"伍","五") が反応しないのでは?
これはA1セルが文字列の時しかダメですね・・・
ということで、この数式は取り下げます。
ご迷惑をお掛けしました・・・私もぼけてます(^_^;) (Hatch)


 (・・、)ヾ(^^ )よしよし
 |)彡サッ!!


 Hatchさん お世話になってます。
漢数字に直したいセルには、 =RIGHT(E5,2)  で、
E5のセルには、「52.17」という数字が入ってます。
そして、表示形式のユーザー定義で [DBNum2]# にすると、「17」が返ってきます。
説明がわかりにくくてすみません。

 takutoさん
教えていただいたとおり、挑戦しているのですが・・・
まだ手間取ってます。これはVBAというものでしょうか?!
もう少し頑張ってみます。

 皆さん、手伝っていただいてありがとうございます。(とんぼ)


横からこっそり失礼します。
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(NUMBERSTRING(A1,3),"一","壱"),"二","弐"),"三","参")

ではどうでしょうか?またまた大ボケかましたらごめんなさい(汗)(かよぺ)


 過去ログにありました
[[20040109220943]]『平成壱五年壱弐月参壱日と表示させるには』(アットホーム)
 (takuto)


 『文字列の数字を漢数字に直したい』ということのようですね。
私の回答は、「数値」としての数字を漢数字に直す場合ですので、的はずれとなっております。
 
(takuto)さんが回答されているユーザー関数を使うのがよいかと思います。
使い方は↓が参考になると思います。
ユーザー関数入門
http://www.excel.studio-kazu.jp/mag2/backnumber/mm20040629.txt
 
 追加しておきます。
ユーザー関数を使った場合の数式は
=n2kan(RIGHT(E5,2))
となりそうです。  (Hatch)


 >私の回答は、「数値」としての数字を漢数字に直す場合ですので、
この学校で定番になってきている「--」で解決できるのでは?
=SUBSTITUTE(TEXT(--RIGHT(E5,2),"[DBNum2]#"),"伍","五") 
(KAMIYA)


 先のユーザー関数改訂版です。
 '-----------------------
 Function tnbo(data)
    Dim i As Integer, f As Integer

    Suji = Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "0", ".", "-")
    kansuji = Array("壱", "弐", "参", "四", "伍", "六", "七", "八", "九", "〇", ".", "-")
    For i = 1 To Len(data)
        For f = 0 To UBound(Suji)
            If Mid(data, i, 1) = Suji(f) Then
                tnbo = tnbo + kansuji(f)
                Exit For
            End If
        Next f
    Next i

 End Function
        (弥太郎)


 (KAMIYA)さん、ありがとうございます。
 そのとおりです・・・頭が回転していないようです。
 重ね重ねの誤回答、失礼いたしました・・m(_ _)m  (Hatch)


 皆さんありがとうございます。本当に助かりましたし、勉強になりました。
ずっと前から出来ずに、ほったらかしにしていたんです。。。
KAMIYAさんの おっしゃった通り、上手くいけたのですが、
甘えついでにもう一つ教えて下さい。
もしセル(E5)の値が空白の時に、空白で返したい時は、
どうしたらよいでしょうか?
=SUBSTITUTE(TEXT(--RIGHT(E5,2),"[DBNum2]#"),"伍","五") (とんぼ)


 ポピュラーなのはIF関数で分岐する方法ですね。
=IF(E5<>"",SUBSTITUTE(TEXT(--RIGHT(E5,2),"[DBNum2]#"),"伍","五"),"")
(KAMIYA)

 KAMIYAさん、完璧に仕上がりました。
どうもありがとうございました(とんぼ)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.