if関数と書式設定:時間表示と分表示

このQ&Aのポイント
  • 基礎数が60を超えた場合は時間表示とし、超えない場合は分表示としたい。
  • 現在の方法では全て分表示されており、時間の計算式箇所だけ書式設定を変更している。
  • 解決策として、列を挿入してif関数を使用し、60以上の場合は時間表示、以下の場合は分表示とする。
回答を見る
  • ベストアンサー

if関数と書式設定

基礎数が60を超えたら時間表示、超えないと分表示としたいのですが、 A1に分単位120数値を入れたとして、 B1に=if(A1>=60,A1/60,A1) と入力します。 この場合数値は2と表記されるのですが、同じセル内で2hと表記させたいのです。 A1が60以下の場合はたとえば40mと表示させたいのです。 今までは全て分表示だったので、時間の計算式箇所だけ セルの書式設定>表示形式>ユーザー設定>0.0"h"としていたのですが 分表示も60分を超えるものは時間単位で、それ以下は分表示をして欲しいと要望があり困っております。 希望形状         A列   B列 G作業    120    2h D作業     40   40m 合計     160   2.7h おとなしく間に列を間に挿入してB1に=if(A1>=60,"h","m")と入力するしかないでしょうか? 宜しくお願いします。

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

  • ベストアンサー
回答No.3

セルの追加や、セルに入力されている式の修正を行わなくても、書式のみでご要望の表示は実現できます。現在質問者さんが設定されている書式に加えて、条件付き書式を同時に設定してあげます。 B1に「=if(A1>=60,A1/60,A1)」が入力されていて、B1:B3の範囲の「セルの書式設定 表示形式」が「0.0"h"」となっているとのことでした。そのままの状態で、同じくB1:B3を選択し、リボン(あるいはメニューバー)の「条件付き書式」をクリック。ルールの種類として「数式を使用して…」を選び、次の数式を貼ります。 =a1<60  (B1セルの場合) 続いて同じダイアログ内にある「書式」ボタンから、「表示形式」を「0"m"」と設定します。 以上により、1時間以上では「h」、未満では「m」となります。セルに算出されている値は、文字列に変換しないので、数値のままとなっています。 なお、条件付きでない通常の「セルの書式設定」における「0.0"h"」を取り消して、式2本による2つの条件付き書式(「0.0"h"」と「0"m"」)を設定してあげる方法でもいいです。

hirotee
質問者

お礼

ありがとうございます。

その他の回答 (4)

回答No.5

No.3・4です。何度も申し訳ありません。 「表示形式」の条件付き書式における設定は、Excel2003以前の場合、設定できません。条件付き書式の機能は、条件の個数に制限がなくなるなど、Excel2007以降で大幅に拡充されました。表示形式もそうした拡充内容の一つなのでした。よく確認せずに回答し、申し訳ありませんでした。 なので、2003以前では、No.1さん、No.2さんのように、文字列として「m」をくっつけるか、質問者さんのおっしゃるように単位のセルを分けるようになってしまうかと思います。2007以降であれば、No.3・4のとおりに設定できます。

hirotee
質問者

お礼

ご丁寧にありがとうございます。

回答No.4

No.3です。蛇足かもしれませんが、「3m」ではなく「03m」と表示したい場合は、「0"m"」の代わりに「00"m"」という書式にしてください。

hirotee
質問者

お礼

蛇足なんてとんでもない。今回は3m表記を使用しますが、今後の勉強になります。 ありがとうございます。

  • aisyun
  • ベストアンサー率12% (1/8)
回答No.2

B1に=if(A1>=60,A1/60&"h",A1&"m") でいかがでしょうか?

hirotee
質問者

お礼

ご回答ありがとうございます。 今回は書式設定で行うことにしましたが、セル&””で色々と設定できる事がわかったのでありがたいです。 特に現在PCによって2010と2003が両方ありますので。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

B列の計算結果は「その後の計算に使わない」前提で B1: =IF(A1="","",IF(A1>=60,TEXT(A1/60,IF(MOD(A1,60),"0.0!h","0!h")),A1&"m")) として、B3までコピー貼り付けておくようなことはできます。 #言わずもがなですが、A3には合計の160を計算しておきます。

hirotee
質問者

お礼

ご回答ありがとうございます。

関連するQ&A

  • エクセル IF関数が入った条件付き書式について

    エクセルにおいて、セルA1、B1、C1があるとします。A1、B1には数値が何も入力されていない状態で、C1に計算式「=SUM(A1)/B1」が入っているとします。このままでは、C1は、「#DIV/0!」と表示されます。 この表示を消すために、C1にIF、ISERROR関数を使い、「=IF(ISERROR(SUM(A1)/B1),"",SUM(A1)/B1)」の計算式を入力します。 このままでもいいのですが、C1の値が「10以上」になった時に、C1のセルに色を付けたいのです。 書式→条件付き書式→セルの値が→次の値以上→10 にすると、セルに何も値が入っていない(空白)状態で色だけが付いてしまいます。 色々調べると、IF関数の""の空白が文字列のため、数値より大きいとみなされている事が原因っていうことは、分かりましたが、色々試してみても出来ません。何かいい方法はございますでしょうか? ご教授お願いします。

  • IF関数で

    AとB列に数値(空欄もあり)が入力してあります。 C列にAかBに数値が入力してあれば○を表示したいのですが CもBも空欄の場合は非表示です。 =IF(A1="","","○")に何を追加すればよいでしょう?

  • IF関数について

    IF関数について A列のセルに住所が入力されていて、「中野区」という文字列が含まれているときに「○」そうでない場合は「-」をB列セルに表示させる方法で B列セルに、 =IF(COUNTIF(A1,"*中野区*"),"○","-") を入力すれば良いことがわかりました。 この条件に加えて、A列のセルが空白の場合上の行を参照するという条件を加えたいと思います。 例A3のセルが空白の場合A2を参照しB3に表示させる。 因みに、A2も空白の場合A1を参照する。 って感じにしたいです。 宜しく御願いします。

  • VLOOKUP関数とIF関数の組み合わせ

    はじめまして。 質問なのですが、セルに列とサイズを入力して用紙寸法一覧表を参考にして「大きさ」をセルに寸法を表示させる問題に困っています。 ヒントにはIF関数を使うと書かれています。 どなたかお願いできますでしょうか?  A   B   D 2 列   __(下の表から自分で入力) 3 サイズ __ 5 大きさ □ × □ ●用紙寸法一覧表(単位:ミリ)   F    G    H     I     J 2 サイズ  A列       B列 3  0  841  1189 1030 1456 4  1  594  841  728   1030 5  2   420   594   515   728 6  3   297   420   364   515 7  4   210   297   257  364 8  5  148   210   182   257 9  6  105   148   128   182 10  7   74    105   91   128 11  8   52    74    64   91 12  9    37   52   45    64 13  10   26   37   32   45 きちんと説明できているかわかりませんがよろしくお願いします。

  • if関数で「20分以上経過」にしるしをつけたい

    いつもお世話になっております。 エクセル2003で、以下のように作りましたがif関数がうまく働きません。 B1~AF1に各月1~31日の休憩時間を入力し、B2には遵守しているかの欄にします。 B1が20分を超える場合「×」そうでなければ「○」とB2~AF2に表示したいのです。 A2には基準値として :20:00 を入力しました。 B2には   if(B2>A2,"×","○") を入力しました。 しかしB1が20分未満「:01:00」等の場合でも「×」と表示されてしまいます。 元々B1の休憩時間は別シートからVLOOKUP関数で呼び出す式が入っていたので 関数を消して直接「:01:00」と入力し、セルの書式をユーザー書式「h:mm:ss」にしたり「時刻」にしたり試しましたが「×」のままです。 A2も同様セルの書式を変えましたが同じです。 時間は「h:mm:ss」の状態で、元ファイルから呼び出され、秒単位の表示なので、 B1はできれば10進数は使わずこの表記の状態にしたいと思います。 またA2の基準時間は、手動で60分にすることもあるので、A2のセルも利用できればと思います。 ネットで検索すると「時間は大小比較ができない」とあったのですが、 ここから先どうすればいいか行き詰っています 別の関数を3行目以降に追加しても構いません。 何かいい方法がないでしょうか。 よろしくお願いします。

  • IF関数について・・・

    A1のセルに数字を入力したら B1のセルに次の表示されるようにしたい場合 IF関数をどのように使えば良いか教えて下さい。 「○○○A1○○○」    *○は文字でA1は数値です。

  • Excel2003でif関数を使うとSUM関数で反映されません

    A1セルに金額を入力すると、B1に1と表示させる為に=IF(A1,"1","")といった数式を入れております。 さらにC1にBセルの合計値を表示させる為に=SUM(B1)C2には=SUM(B1:B2)と入力しているのですが、B列のセルにIF関数を使った数字『1』が表示されてもC列セルに反映されないので困っています。 ここで質問ですが、A列セルに金額が入力されるとB列セルに数字『1』が表示され、更にC列セルにB列セルの合計値が表示される様な関数等はありますでしょうか?解り難い説明ですいません。 因みにA、B、C列共に1~31までのセルがあります。

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

    IF関数について、皆様に質問です。 セルに入力された数値xがある数値yと同じか大きい場合は"NG"と表示し、数値aがある数値bと同じか小さい場合は"NG"と表示させたいと考えております。 IFを使って式を作成したのですが、『数式が多すぎる』というエラーになってしまいます。 具体的には、 セルB25に入力している数値が8.980の場合、 8.991と同じまたは大きい場合は"NG"と表示させたい。 同じセルB25で、8.969と同じまたは小さい場合は"NG"と表示させたい。 これをこのような式にしてみました。 =IF(B25<=9.991,"NG","",IF(B25>=9.969,"","NG")) これで『数式が多すぎる』というエラーになっています。 教えてgooで調べたのですが、解決には至っていません。 どなたかご教示いただけますでしょうか。

  • IF関数で0より大きい数値が入力されたら「あ」と表示、文字列の場合は空白としたい

    エクセル2003です B1に =IF(A1>0,"あ","")とすると「0」のときは、空白となりますが文字列が入力されたときにも「あ」と表示されてしまいます。 A1セルに「0」より大きい数値が入力されたときだけ、B1セルに「あ」と表示したいのです。 よろしく御願いします。

  • エクセルのIF関数について質問します。

    C列のセルに、もしA列のセルの数字がゼロならば-を表示し、ゼロ以外ならA列とB列の積を表示するようにしたいのですが、A列のセルが未入力のでもゼロと数えられるのかC列には-が並んでしまいます。Aに数値を入力し時だけ、Cを表示をする方法を教えて下さい。よろしくお願いします。

専門家に質問してみよう