重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

たとえばAのセルに4時といれると別のセルに
四時、3時20分といれると別のセルに三時二十分と
かえす関数を教えてください。

A 回答 (3件)

シリアル値でデータが入っているならセルの表示形式でユーザー定義を用いて以下のように設定すればそのまま使用できます(別セルに表示するなら=A1のような式でOKです)。



[DBNum1]h"時"m"分"

もし、文字列で入力されている場合は、比較的面倒な文字列関数で計算する必要がありますのでお知らせください。
    • good
    • 0

参考までに、Wendy02さんの関数には2箇所(11時などの2桁に対応できない、分の数字でなく「分」まで1文字多く取得している)誤りがありました。


そのまま使わせていただくと以下のようになります。

=IF(ISNUMBER(A1),TEXT(A1,"[DBnum1]h時m分"),IF(ISERROR(FIND("時",A1)),"",NUMBERSTRING(LEFT(A1,FIND("時",A1)-1),1)&"時")&IF(ISERROR(FIND("分",A1)),"",NUMBERSTRING(MID(A1,FIND("時",A1)+1,FIND("分",A1)-FIND("時",A1)-1),1)&"分"))
    • good
    • 0
この回答へのお礼

No.1の御回答の最初の入力の仕方でできました!!
簡単な入力ミスでした。すみません・・ありがとうございました。

お礼日時:2005/03/23 09:01

関数でしたら、このようになると思いますが、



=IF(ISNUMBER(A1),TEXT(A1,"[DBnum1]h時m分"),IF(ISERROR(FIND("時",A1)),"",NUMBERSTRING(MID(A1,FIND("時",A1)-1,1),1)&"時")&IF(ISERROR(FIND("分",A1)),"",NUMBERSTRING(MID(A1,FIND("時",A1)+1,FIND("分",A1)-FIND("時",A1)),1)&"分"))

ユーザー定義関数でしたら、以下のようになると思います。
'<標準モジュールに設定>

Function Henkan_Time(ByVal セル As Range) As String
Dim myText As String
Dim Hour As String
Dim min As String
myText = StrConv(セル.Text, vbNarrow)
If InStr(myText, "時") > 0 Then
Hour = Application.Evaluate("NUMBERSTRING(" & Val(myText) & ",1)") & "時"
End If
If InStr(myText, "分") > 0 Then
min = Application.Evaluate("NUMBERSTRING(" & _
    Val(Mid(myText, InStr(myText, "時") + 1)) & ",1)") & "分"
End If
Henkan_Time = Hour & min
End Function

関数は、あまり自信がありません。
    • good
    • 0

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