if関数と書式設定:時間表示と分表示
- 基礎数が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")と入力するしかないでしょうか? 宜しくお願いします。
- hirotee
- お礼率92% (51/55)
- オフィス系ソフト
- 回答数5
- ありがとう数5
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
セルの追加や、セルに入力されている式の修正を行わなくても、書式のみでご要望の表示は実現できます。現在質問者さんが設定されている書式に加えて、条件付き書式を同時に設定してあげます。 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"」)を設定してあげる方法でもいいです。
その他の回答 (4)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
No.3・4です。何度も申し訳ありません。 「表示形式」の条件付き書式における設定は、Excel2003以前の場合、設定できません。条件付き書式の機能は、条件の個数に制限がなくなるなど、Excel2007以降で大幅に拡充されました。表示形式もそうした拡充内容の一つなのでした。よく確認せずに回答し、申し訳ありませんでした。 なので、2003以前では、No.1さん、No.2さんのように、文字列として「m」をくっつけるか、質問者さんのおっしゃるように単位のセルを分けるようになってしまうかと思います。2007以降であれば、No.3・4のとおりに設定できます。
お礼
ご丁寧にありがとうございます。
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
No.3です。蛇足かもしれませんが、「3m」ではなく「03m」と表示したい場合は、「0"m"」の代わりに「00"m"」という書式にしてください。
お礼
蛇足なんてとんでもない。今回は3m表記を使用しますが、今後の勉強になります。 ありがとうございます。
- aisyun
- ベストアンサー率12% (1/8)
B1に=if(A1>=60,A1/60&"h",A1&"m") でいかがでしょうか?
お礼
ご回答ありがとうございます。 今回は書式設定で行うことにしましたが、セル&””で色々と設定できる事がわかったのでありがたいです。 特に現在PCによって2010と2003が両方ありますので。
- keithin
- ベストアンサー率66% (5278/7940)
B列の計算結果は「その後の計算に使わない」前提で B1: =IF(A1="","",IF(A1>=60,TEXT(A1/60,IF(MOD(A1,60),"0.0!h","0!h")),A1&"m")) として、B3までコピー貼り付けておくようなことはできます。 #言わずもがなですが、A3には合計の160を計算しておきます。
お礼
ご回答ありがとうございます。
関連する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関数の""の空白が文字列のため、数値より大きいとみなされている事が原因っていうことは、分かりましたが、色々試してみても出来ません。何かいい方法はございますでしょうか? ご教授お願いします。
- ベストアンサー
- その他MS Office製品
- 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行目以降に追加しても構いません。 何かいい方法がないでしょうか。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- 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を表示をする方法を教えて下さい。よろしくお願いします。
- 締切済み
- オフィス系ソフト
お礼
ありがとうございます。