エクセルで【xx:yy】というような感じで時刻を表しています。(例 3時20分⇒3:20)
これを30分単位で切り捨てした時間を変数とする関数(分も時間に変換)、もしくは手段を探しているのですが、
ご存知ありませんか?
(例 3:20⇒3、15:35⇒15.5)

宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

セルB5に時間が入っているとします。


=INT((B5/"00:01"/30))*0.5

これで、期待する値がでます。

考え方
時間/”00:01”で分に換算出来ます。(ただし、セルの表示形式を標準にしておくことが必要)

後は、30分単位と言うことなので、30で割って
整数部だけもってきて、*0.5とします。

参考までに、時間に関する扱いは、大村あつし氏の
エクセル簡単プログラミングが参考になります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考にさせてもらいます。

お礼日時:2005/04/01 17:37

セルA1に時刻(XX:YY)が入っているとして、



=FLOOR(A1,0.5/24)*24

とします。

なお、A1の書式設定は、数値(小数以下2桁)としておきます。
    • good
    • 0
この回答へのお礼

どうもです。
設定できました。

お礼日時:2005/04/01 17:38

=INT((B11)*48)/2

    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

Qエクセルで切り捨てして、その切り捨てた分を表示させたい

硬貨の扱いを減らすために、
123,456円の場合123,000をその日清算し、456円を月末に清算しています。

エクセルに123456と入力すると
123000
456
このふたつの数字に分ける方法はないでしょうか?
具体的には
A1に123456入力
B1に=ROUNDDOWN(A1,-3) これで123000を表示できるのはわかりました
C1に456を表示させる方法がわからないです。

Aベストアンサー

C1の式は単純に
=A1-B1
この式では不都合があるのですか。

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

Qエクセル:ユーザー定期m"月"d"日"(aaa)で例:3月18日(日) 日曜日の場合は赤字で表示するには

ユーザー定期m"月"d"日"(aaa)で、例:3月18日(日) 日曜日の場合は赤字で表示するにはどうすればいいでしょうか。
条件付書式で『「数式が」=not(iserror(find("日",a1:c3)))』と設定しても反映しません。98です。
出来る限り簡単な方法を教えてください。宜しくお願いします。

Aベストアンサー

Excel98ではありませんが、2003では、
WEEKDAY関数で、
設定したいセルのある列を範囲選択し、
セルの条件付き書式で、数式がにし、
=WEEKDAY($A1,1)=1
とすればA列にある日付で日曜日に該当するセルが任意の書式で表示されます。
意味は、A列中の該当するセルが日曜日を1として数える書式で、1(日曜日)ならば、設定した書式で表示します。
無論A1:C1でも大丈夫ですよ。

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

Q(続)エクセルでVBAを使い、時間入力10:30:45(10時30分45秒)の:コロン省略したい。

始業と終業の時間を入力し勤務時間を計算しております。
時間は時:分:秒まで入力します。
例えば始業時間はA1に8:30:25 、終業時間はB1に17:00:45と入れております。
コロン(:)を省略できるととても楽になります。8:30:25は83025と入力、17:00:45は170045と入力して、
表示にはコロンが入り、セルの書式としては時刻と認識し時間差を(時間:分:秒)と計算出来ればありがたいです。
よろしくお願い致します。

VBAを使った(時間:分)のコロンを入力しないで、かつ表示にはコロンが入り、セルの書式としては時刻と認識し時間計算が出来る例は検索できました。
下記です。 t****さんありがとうございました。
ですがそれを秒まで拡大し(時間:分:秒)に対応できるVBAに変更できず困っております。
何卒よろしくお願い致します。

-----------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
If Intersect(Target, Range("A:B")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Value <> "" Then
If IsNumeric(.Value) Then
If .Value < 2400 And .Value Mod 100 < 60 Then
Application.EnableEvents = False
.Value = TimeSerial(Int(.Value / 100), .Value Mod 100, 0)
.NumberFormatLocal = "h:mm"
Application.EnableEvents = True
Else
MsgBox "入力値が不正です"
.Select
.ClearContents
End If
End If
End If
End With
End Sub 'この行まで
-----------------------------------------------------------------------------

始業と終業の時間を入力し勤務時間を計算しております。
時間は時:分:秒まで入力します。
例えば始業時間はA1に8:30:25 、終業時間はB1に17:00:45と入れております。
コロン(:)を省略できるととても楽になります。8:30:25は83025と入力、17:00:45は170045と入力して、
表示にはコロンが入り、セルの書式としては時刻と認識し時間差を(時間:分:秒)と計算出来ればありがたいです。
よろしくお願い致します。

VBAを使った(時間:分)のコロンを入力しないで、かつ表示にはコロンが入り、セ...続きを読む

Aベストアンサー

変換ロジックを関数化して実装してみました。
「8:30:25」「83025」どちらの入力でも対応できているはずです。
ちなみに、2未満を入力すると日とみなし、2以上を入力すると秒とみなして表示されます(この辺はやってみて下さい)。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
If Intersect(Target, Range("A:B")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Value <> "" Then
Application.EnableEvents = False
.Value = MyTimeValue(.Value)
If .Value = "" Then
MsgBox "入力値が不正です"
.Select
Else
.NumberFormatLocal = "[h]:mm:ss"
End If
Application.EnableEvents = True
End If
End With
End Sub 'この行まで

Function MyTimeValue(MyTime As Variant) As Variant
Dim t As Variant
Dim d As Variant
If IsNumeric(MyTime) And MyTime < 2 Then
MyTimeValue = MyTime
Exit Function
End If
On Error GoTo Fin
t = Split(Format(MyTime, "000:00:00"), ":")
d = Int(t(0) / 24)
t(0) = t(0) Mod 24
MyTimeValue = d + TimeSerial(t(0), t(1), t(2))
Fin:
End Function

変換ロジックを関数化して実装してみました。
「8:30:25」「83025」どちらの入力でも対応できているはずです。
ちなみに、2未満を入力すると日とみなし、2以上を入力すると秒とみなして表示されます(この辺はやってみて下さい)。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
If Intersect(Target, Range("A:B")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Value <> "" Then
Application.EnableEvents = False
.Value = ...続きを読む

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

QExcel:MID関数で(xxxx/yy/zz)の場合

http://okwave.jp/qa3857919.html
にて似たような質問をしました。
今回は数値ではなく日付の場合です。

Sheet1のB列に「xxxx/yy/zz」というように年月日が入力されています。
常にこの年月日の最新年月日の一ヶ月前の年月日をSheet2の指定セルに分割して表示させることは出来ないでしょうか?
例えば以下の場合、

Sheet1のB2に2008/1/31、B3に2008/2/29、B3に2008/3/31と入力されていた場合にSheet2のA18に「0」、B18に「8」、D18に「0」、E18に「2」、G18に「2」、H18に「9」と表示させたいのです。
Sheet1のB列には毎月年月日が追加されていきます。
Sheet1のB4に2008/4/30と追加されれば、Sheet2のA18に「0」、B18に「8」、D18に「0」、E18に「3」、G18に「3」、H18に「1」と表示されるようになります。

解りづらいかもしれませんが、よろしく御教示お願い致します。

Aベストアンサー

最新の日付は
=MAX(Sheet1!B:B)
で算出できますので、その1ヶ月前なら
=EDATE(MAX(Sheet1!B:B),-1)
です。
これを「yymmdd」の形で表すようにするには、
=TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd")
です。
そこで、
Sheet2のA18に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),1,1)
Sheet2のB18に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),2,1)
Sheet2のD8に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),3,1)
Sheet2のE18に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),4,1)
Sheet2のAG18に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),5,1)
Sheet2のH18に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),6,1)
で可能ですが、
「TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd")」の部分は、
別のセルに記述しておき、(仮にSheet2のセルA1と仮定すると)
Sheet2のA18に
=MID(Sheet2!$A$1,1,1)
などと書くことができるようにした方がよいでしょう。

最新の日付は
=MAX(Sheet1!B:B)
で算出できますので、その1ヶ月前なら
=EDATE(MAX(Sheet1!B:B),-1)
です。
これを「yymmdd」の形で表すようにするには、
=TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd")
です。
そこで、
Sheet2のA18に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),1,1)
Sheet2のB18に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),2,1)
Sheet2のD8に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),3,1)
Sheet2のE18に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),4,1)
...続きを読む

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

Q誕生日から年齢をXX歳XXヶ月と表示させたい。

エクセル関数を使って
誕生日から年齢をXX歳XXヶ月と表示させたいのですが、
今年度4月1日現在で出したいのです。
よろしくお願いします。

Aベストアンサー

A1に誕生年月日
B1に2008/4/1
=DATEDIF(A1,B1,"Y")&"歳"&DATEDIF(A1,B1,"YM")&"ヶ月"


人気Q&Aランキング

おすすめ情報