Excelエクセル関数で文字を取り出す方法が分かりません

このQ&Aのポイント
  • Excelエクセル関数で特定の文字を取り出す方法が分かりません。試したmid関数やleft関数やright関数でもエラーが発生してしまいます。
  • 取り出す対象の文字は「11:15」で、これは「11時間15分」という意味です。また、この文字列はsum関数の結果です。
  • ネットで調べた方法ではうまくいかず、エラーが発生しています。どなたか正しい方法を教えていただけないでしょうか。
回答を見る
  • ベストアンサー

excelエクセル関数で困ってます。

excelエクセル関数で困ってます。 あるセルにある文字の内、一部だけ取り出したいです。先頭から何文字とか先頭からこの記号:があるところまで取り出すとか後ろから何文字とかです。 mid関数やleft関数やright関数を使うとネットであったんで使ったんですが、できません。エラーになります。 実は取り出す元の文字というのは11:15というような数字なんです。しかもこの数字自体はsum関数で計算した結果です。この11:15から11と15という数字を取り出したいです。11:15というのは11時間15分という意味です。 因みに残業時間の加算で11:15になりました、、、 現時点ではネットで書いてある通りやってるのにエラーなんで理由がわかりません。わかる方教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.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)

回答No.4

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)
回答No.3

訂正(^^; 誤:少数 正;小数

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.2

演算した結果が「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)
回答No.1

 時間の加算で11:15になったのなら、その11:15自体も時間のデータなのですから、11(時間)を取り出す場合は =HOUR(J34) 15(分) =MINUTE(J34) になります。

関連するQ&A

  • エクセルの関数の質問です。

    エクセルの関数の質問です。 こんにちは。初歩的な質問かと思いますが、お力をお借りしたいです。 現在エクセルでデータを作っているのですが 連番になっている数字を記号をつけて分けたいと思っています。 例としては 『1234567890』となっているものを『123-456-7890』や 『1234567890』となっているものを『123/456/7890』 という具合に抽出したいと思うのですが上手くいきません。 エクセル入門などのページを見て、LEFTやRIGHTを使えば・・・と思ったのですが・・・。 お力を貸していただけませんでしょうか。

  • エクセル関数を教えてください

    以前こちらで回答を頂き、活用させていただいてます。 今回の質問についてもおねがいします。  ※今回の質問 セル内の4桁の数字(1から0までの数字を使用した4桁;例えば1249)を、別のセル内に、関数(1234567890をそれぞれ2458761390へ変換する関数)で変換された4桁(例えば2489)で表示したいのですがその際に使用する関数を教えてください。参考に前回の質問と回答を参照します。 よろしくお願いします。 ※前回の質問 セル内の3桁の数字(1から8までの数字を使用した3桁;例えば124)を、別のセル内に、関数(12345678をそれぞれ24587613へ変換する関数)で変換された3桁(例えば248)で表示したいのですが、その際に使用する関数を教えてください。エクセル上に表示する数字は1から8までのうちの3桁で、12345678をそれぞれ24587613へ変換したいです。 ※回答 =SUM(FIND(MID(A1,{1,2,3},1),71823654)*10^{2,1,0}) =SUM(MID("24587613",MID(A1,{1,2,3},1)*1,1)*10^{2,1,0})

  • エクセルの関数について

    いつもお世話になっております。 エクセルの関数についてお尋ねします。 (例) A1に 12/09/2013 16:00:06 という文字列があり、これをB1でシリアル値に変更しようと考えています。 MID(A1,7,4)&"/"&LEFT(A1,5)&MID(A1,11,9) ⇒ 2013/12/09 16:00:06(文字列) (MID(A1,7,4)&"/"&LEFT(A1,5)&MID(A1,11,9))*1 ⇒41612.7086111111 と*1する事によってシリアル値に変換されてるわけですが、この『×1』はどのような意味なのでしょうか? 知らないで使っているのが気持ち悪いのでどなたかよろしくお願いいたします。

  • エクセル関数の不思議

    エクセル関数でお聞きします。 別表のようにc5に 258と数値があります。 これを 6行目に Left関数、Mid関数、Light関数で それぞれ 2,5,8と分解します。 次にこの 2,5,8を Sum関数で =sum(c6:e6)で計算すると 0と表示されます。 次に =c6+d6+e6 で個々に足し算すると 正解の15が表示されます。 これはなぜでしょうか。 また、今状態で SAM関数で正解を導くことはできますか? ※OKWAVEより補足:「富士通FMV」についての質問です。

  • エクセルでの関数の活用方法について

    エクセルを使って,「ひらがな3文字の言葉あてゲーム」を作るとします。(例えば、”ヒントは果物”など予めヒントが与えられているとして、あるセルに「りんご」と入力すると、「1文字目」「2文字目」「3文字目」が別の3つのセルに分離して表示され、さらに、また別の3つのセルが、その言葉の1,2,3文字目それぞれの正誤の判定を表す。というものです。各文字の判定の方法は、文字も位置も正しければ、「正解」、文字は含まれているが位置が間違っていれば「おしい」、どちらでもなければ「残念」になるようにします) 「りんご」が正解としたとき、  解答欄              1文字目  2文字目   3文字目  みかん   み  か  ん  (1)残念   (2)残念    (3)おしい  りんご   り  ん  ご   (1)正解   (2)正解    (3)正解 となるようにしたいです。 RIGHT,LEFT,MID,IF,ORの5つの関数を使ってこのような判定を表す仕組みを作るには、(1)、(2)、(3)それぞれのセルにどんな式を入力すればいいでしょうか? 解答欄に「みかん」と入力したときに、 み か ん  と分離して表示させるのにRIGHT,LEFT,MID関数を使う、というところまでは分かったのですが、そのあとが分りません。 よろしくお願いします!  

  • エクセル関数でご教示下さい

    エクセルの1セル(A列の各行)に入力されている文章を、B列C列・・・・と振り分ける為、 =LEFTや=MID関数を使って振り分けていますが、「出張」又は「来所」といった2つのどちらかの文字の次から10文字を取り出すような関数があればご教示ください。

  • エクセルの日付変換

    ある決まりで構成されている文字列を、Left、Mid、Right関数で抜き出し、Date関数で日付に変換しております。 しかし日付としては異常な数字があっても、エクセルの場合シリアルですので、異常な値でも日付に変更してしまいます。 エラーが出て異常がわかる方法ないでしょうか。 日付の部分が31以上だとNGという方法もあるとは思いますが、アクセスのようにエラーが出てほしいです。 例 正しい:MA08⇒2000/10/8 間違い:MA80⇒しかし2000/12/19と表示される。#VALUE!など間違いということがわかる方法が理想。

  • Excel 関数

    文字と数字(例えば111aaa)から、数字だけを抽出する関数を作ろうとしたら上手くいかず、ネット上で調べたら次のようなものが出てきました。 =LOOKUP(10^17,LEFT(A1,COLUMN($1:$1))*1) となっていました。うまく作動はするのですがどうも意味がわからないところがあります。 Q, Column($1:$1)を単独で用いると1を返します。それをLEFTの文字数に表したところで1しか表さないと思うのですが、lookupまで用いると、lookupで探している値に近くなる数字を探し、Column($1:$1)が任意に動いているような挙動をしています。これはなぜなのでしょうか?

  • EXCELの関数で、時間の累計を出したい

    Excelの加算のことでお知恵をお貸しください。 時間の累計を出したいのです。 たとえば、 18:30 7:20 をSUM関数で足すと、 25:50となって欲しいのですが、 24時間を越えると、翌日扱いになってしまうらしく、答えが1:50になってしまいます。 解決方法があれば、教えてください。

  • Excelで2003年4月を2003に

    Excelで2003年4月などの年月が入ったカラムがあります これを =left(B2,4) で先頭4文字だけ抽出しようとすると 3200 などの無関係の数字がリターンされます 2003 だけをリターンさせるにはどの関数を使えばよいでしょうか

専門家に質問してみよう