- ベストアンサー
Excelエクセル関数で文字を取り出す方法が分かりません
- Excelエクセル関数で特定の文字を取り出す方法が分かりません。試したmid関数やleft関数やright関数でもエラーが発生してしまいます。
- 取り出す対象の文字は「11:15」で、これは「11時間15分」という意味です。また、この文字列はsum関数の結果です。
- ネットで調べた方法ではうまくいかず、エラーが発生しています。どなたか正しい方法を教えていただけないでしょうか。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>実は取り出す元の文字というのは11:15というような数字なんです。 その値は文字列ではないです。 他の回答者も言っているように時間(時刻)を数値化したもので、1=24時間(1=1日)としたものでシリアル値と言います。 セルの書式はユーザー定義の[h]:mmまたはh:mmとなっているはずです。 「因みに残業時間の加算で11:15になりました」とのことですから[h]:mmでしょう。 >現時点ではネットで書いてある通りやってるのにエラーなんで理由がわかりません。 J34セルに11:15と表示されていても実際の値は0.46875です。 従って、FIND関数で":"が見つからずにエラーになります。 時間(時刻)のシリアル値から時間(時刻)を整数で取り出すにはHOUR関数を使います。 他の方法としては1=24時間と言う原則を利用してINT関数を使うことで時間の整数値を求めることができます。 =INT(J34*24) この数式は24時間以上のときも正しい時間数を算出できます。(HOUR関数では24時間未満しか求められません) 端数の分はMINUTE関数で問題なく算出できます。 =MINUTE(J34) MINUTE関数で戻る値は0~59の範囲です。 尚、夫々は整数の数値になります。
その他の回答 (4)
- neKo_quatre
- ベストアンサー率44% (735/1637)
MID関数は「文字列」から、指定した文字位置、文字数を取り出す関数です。 「11:15」は数値(シリアル値)だから期待した結果にならないのでは。 例えば、 A1のセルに11:15と入力。 B1に=MID(A1,1,2)とすると、「11」でなくて「0.」が取り出されます。 内部的には、11:15は0.46875いくつってシリアル値で保持しているからです。 > 実は取り出す元の文字というのは11:15というような数字なんです。 シリアル値の11:15から11時の「数値」を取り出すなら、=HOUR関数使うのが真っ当です。 MID関数使いたいなら=TEXT(対象セル, "hh:mm")とかで文字列にしとくとか。
- mt2015
- ベストアンサー率49% (258/524)
訂正(^^; 誤:少数 正;小数
- mt2015
- ベストアンサー率49% (258/524)
演算した結果が「11:15」と表示されるなら、それは文字列ではなく時間のシリアル値です。 詳細な説明は省略しますが、時間のシリアル値とは、0時を0、24時を1とした少数です。 例:12時なら0.5、11:15なら0.46875 残業時間の計算ですよね。 あなたが恐らく次にぶつかるのは残業時間が24時間を超えた時の表示です。 「25時間の残業時間なのに1:00と表示される!?」 そんな時は、残業時間のセルの書式をユーザー定義で[hh]:mmとしてください。25時間の残業時間がちゃんと25:00と表示されます。 で、この時「25」を取り出すにはHOUR関数では駄目です。以下の様にしましょう。 =INT(J34*24)
- kagakusuki
- ベストアンサー率51% (2610/5101)
時間の加算で11:15になったのなら、その11:15自体も時間のデータなのですから、11(時間)を取り出す場合は =HOUR(J34) 15(分) =MINUTE(J34) になります。