• ベストアンサー

表示形式と【*1】の意味についてご質問します。

Excelで出勤表を作成しております。     A     B    C    D    E     F 1   日付  曜日  出社  退社  休憩  勤務時間 2  7月1日  土   10:00  17:15   90     5:45 といった項目があります。 この時E列の休憩が分のみで入力してある為、ただの引き算では値が出ず、こちらのサイトを探し回ったお陰で 【=D6-C6-TEXT(E6,"0!:00")*1】 という式に辿り着きました。 (どの事例を参考にしたかは解からなくなってしまいましたが…) 値を算出する事は無事出来たのですが、 この式の【0!:00】の意味が理解出来ておりません。(特に【!】の意味が解かりません) 一般的に時刻の書式は【h:mm】が多く使われるかと思いますが、確かにこれでは正確な値が出ない。。。 また、こちらサイトの回答でもたびたびお見かけする【*1】には何の意味があるのでしょう? 今回の式では【*1】が無くても同じ値が出るのですが、【*1】は必要ないのでしょうか? 問題解決したものの、頭の中が「???」で一杯になってしまったので投稿しました。(^^; どうか宜しくお願い致します。

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

  • ベストアンサー
  • mii-japan
  • ベストアンサー率30% (874/2820)
回答No.1

"0!:00" の! は90(分) を 文字列 0:90 に変換するための特別な意味を持つ *1は  TEXT(E6,"0!:00") が文字列なので、1をかけて数値化する 例ですと TEXT(E6,"0!:00")  は 0:90 (文字列) TEXT(E6,"0!:00")*1 は 0.0625(数値)になります 通常の場合 =D6-C6-TEXT(E6,"0!:00")*1 はD6-C6が数値で計算されるので -TEXT(E6,"0!:00") も数値化されて計算されるのため *1 の意味が明確には判りません (MSの「小さな親切大きなお世話」機能の一つです) 特殊な式 等では 明確に定義することを要求されることがあります

Dona1d
質問者

お礼

わかり易いご説明有難うございます。 【*1】にはそういった意味があったのですね(*^^*) >(MSの「小さな親切大きなお世話」機能の一つです) 思わず笑ってしまいました。 確かにMSソフトではそういった事が良くありますね。 ただ、【!】の意味がまだ良く理解出来ていません。 「特別な意味を持つ」とは? うぅ~ん...逆に興味をそそります。

その他の回答 (5)

  • fukkyse
  • ベストアンサー率32% (130/402)
回答No.6

#3.5です。 あえて、TEXT関数を使う意味はないと思います。 素直に =D6-C6-E6/(24*60) セルの書式設定を"h:mm"でよいです。 質問内容が「*1」と「!」についての内容でしたので…。

Dona1d
質問者

お礼

御礼が遅くなりすいません。 今回は色々と勉強になりました。 本当に有難うございましたm(u_u*)m

  • fukkyse
  • ベストアンサー率32% (130/402)
回答No.5

素直にコレなんでしょうけど =E6/(24*60)

参考URL:
http://www.relief.jp/itnote/archives/000903.php
Dona1d
質問者

お礼

出来ました! [=D6-C6-TEXT(E6/(24*60),"[h]:m")]で良かったでしょうか? ご教示頂いたサイトの説明を読んでなるほど...とかすかに納得。 この度は大変勉強になりました。 本当に有難うございましたm(*u_u)m と…今更ですが、投稿の表(?)には2行目を使用しているのに式は6行目を使用していたのに気づきました^^; 今までご回答下さった皆様方申し訳ありませんでした。

  • NCU
  • ベストアンサー率10% (32/318)
回答No.4

その式では「100」と入力したら100分でなく60分になりますが承知の上ですね? 念のため。

Dona1d
質問者

お礼

ご指摘下さり有難うございます。 出社時間を「10:00」・退社時間を「11:40」休憩時間を「100」にしてみたら確かに「0」になるべきはずの値が「0:40」となりました(>_<) 皆様のお陰で意味は理解出来たものの、振り出しに戻ってしまいました(TДT)

  • fukkyse
  • ベストアンサー率32% (130/402)
回答No.3

!の意味。 :に対して、文字列を宣言しています。 参考は日付に対して書いてある内容ですが、考え方は同じです。

参考URL:
http://www.relief.jp/itnote/archives/001896.php
Dona1d
質問者

お礼

なるほど☆ あやふやではありますが何となく解かってきたような気がします。 今更ですが色々と奥が深いですね。 勉強になりました。 有難うございます(*^^*)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

TEXT関数で得られる結果は文字列です。 これを数字に変換するのは関数(時刻であればTIMEVALUEなど)を使用する方法もありますが、一番簡単なのは数字の1をかけ算することです。 でも式の中では勝手に数値化を行いますから、 *1 はなくても同じ結果が得られると思います。

Dona1d
質問者

お礼

いつも文字列を数値に変換する時はVALUE系の関数を用いておりました(^^; 【*1】が代用できるとは驚きです。 有難うございました☆

関連するQ&A