[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『数字を漢数字にするにはどうしたら?』(とんぼ)
[数字を漢数字にするにはどうしたらよいでしょうか?]
「1234567890」を「壱弐参四五六七八九〇」で表したいのですが、
NUMBERSTRING関数を使ってみたのですが、
「123」が「壱百弐拾参」となってしまいます。
例として
「256」なら「弐五六」
「301」なら「参〇壱」
「2891」なら「弐八九壱」というふうに、
千、百、拾を省きたいのです。
教えてください。お願いします。
表示形式のユーザー定義で [DBNum2]# とするのはいかがですか? ただし、五が伍になりますが・・・ ついでに、伍を五に置換える式を追加しておきます。 =SUBSTITUTE(A1,"伍","五") (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というものでしょうか?! もう少し頑張ってみます。
皆さん、手伝っていただいてありがとうございます。(とんぼ)
ではどうでしょうか?またまた大ボケかましたらごめんなさい(汗)(かよぺ)
過去ログにありました [[20040109220943]]『平成壱五年壱弐月参壱日と表示させるには』(アットホーム) (takuto)
『文字列の数字を漢数字に直したい』ということのようですね。 私の回答は、「数値」としての数字を漢数字に直す場合ですので、的はずれとなっております。 (takuto)さんが回答されているユーザー関数を使うのがよいかと思います。 使い方は↓が参考になると思います。 ユーザー関数入門 https://www.excel.studio-kazu.jp/tips/0501/ 追加しておきます。 ユーザー関数を使った場合の数式は =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.