会社で働いた時間の表をExcelで作っています(1ヶ月 1シート)。

B列は日付が入っていて、
C列には曜日、例えば =TEXT(B3, "ddd") が入っていまして(Sun,Satなどと表示)、
D,E,F列・・・・・には出社時刻、退社時刻、休憩時間、・・・・を入力します。

やりたいこと:土曜と日曜は書式設定をしたい(たとえば セルに色を付ける。)

範囲指定して
書式メニューの条件付き書式で、
条件1 セルの値が 次の値に等しい ="Sun"
条件2 セルの値が 次の値に等しい ="Sat"
などと設定すれば、曜日(C列)のセルは指定した設定になりますが、
他の列も指定した設定にしたいのです。

バージョンはExcel2000です。よろしくお願いします。

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

A 回答 (7件)

補足を拝見しました。



関数ヘルプなどで見ると分かるかと思いますが
WEEKDAY関数は日付に対応する曜日を1~7などの数字で
表す関数です。
=WEEKDAY(値,種類) ということになるんですが
値は日付や日付を表すセル・数式など、
種類は
1(または省略) 日~土 1~7
2       月~日 1~7
3       月~日 0~6
というように、その時に都合のいい結果を引き出せばいいわけです。

ここの質問でのネックはむしろ条件付き書式で 
「数式が」を選ぶこと と 
行全体に対応させるにはBの前に$をつけること ですね。 
WEEKDAY関数がややこしければ
条件を下の134さんのアドバイスのように
数式が =$C3="Sun" としても同じ結果になりますね。

この回答への補足

 #1で私が何が理解できなかったかというと、範囲指定した上で相対参照しているところです。私のこれまでの理解では、絶対参照・相対参照とは「コピー&ペースト」(#2補足)の概念であって、初めに範囲指定したときの概念ではなかった。

 最後におっしゃっているように、範囲指定した上で、条件付き書式で「数式が =$C3="Sun"」という設定が、わかりやすさでも実用面でも、私にとって一番いいかもしれません。

補足日時:2001/02/10 12:02
    • good
    • 0

条件付き書式で


「数式が」を指定して、=C2="Sun"で赤字 とかとすると列が赤くなりましたがしたが…
    • good
    • 0

janmaのご紹介のサイトで「条件付き書式」で色を付けるを読み、1から7までの数字を縦に入れ、7の場合のみ黄色で表示するように設定しました。


うまくできました。

ありがとうございました。お陰で活用できます。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2001/02/09 07:24

こんにちは



 条件付き書式については以下のページで詳しく解説しておりますので、是非ご覧になってみてください。

【エクセル技道場】-条件付き書式
http://www2.odn.ne.jp/excel/waza/cformat.html

 「土日祝日に色をつける」というのもあります。

参考URL:http://www2.odn.ne.jp/excel/waza/cformat.html
    • good
    • 0
この回答へのお礼

参考URLがとても参考になりそうです。

お礼日時:2001/02/09 07:23

例えば、カレンダーで、日曜日は赤、土曜日は青にしたいということなのでしょうか。



書式設定では無理だと思いますが。
VBAで簡単なプログラムを組めば出来ますが。

この回答への補足

質問で説明がたらなかったかもしれません。
 セルを選んで右クリック、セルの書式設定-パターン で
セルに網掛けや色を付けたりできますが、
そういうことを、いちいち土・日の行を選んで右クリックして設定するんじゃなくて、
自動的に土・日の行は設定されるようにする、
ということです。

VBAとかマクロとかよくわからないので、できれば使わないでできればよいのですけど。

補足日時:2001/02/03 23:42
    • good
    • 0

C1セルに、


条件付書式で、
条件1 数式が =WEEKDAY($B1,2)=6
条件2 数式が =WEEKDAY($B1,2)=7
として書式で色を指定します。
あとは、書式をコピーします。
(「編集」-「形式を選択して貼り付け」で、『書式』を選択)

この回答への補足

問題の表は月の1日が3行目、2日が4行目、・・・・となっているのですが、そのことは考慮外としてやってみました。

 ご回答の通り、C1セルに条件付書式(色)を設定してコピーし、表内を範囲選択し、書式を貼り付けました。
すると、土曜の行・日曜の行とも指定した色になりましたが、
日付が5桁の整数値、出社時刻や退社時刻が小数値になってしまいました(シリアル値というのでしょうか)。
多分、書式をコピーするということは、表示形式もコピーすることなのでしょう。コピー元のC1セルの表示形式は「標準」です。
それで、シリアル値となってしまった列の表示形式を日付や時刻に設定しなおすと、元通りの表示(シリアル値でないもの)に戻りました。


初めに範囲選択して条件付書式を設定するよりも、ご回答のように、1つのセルに条件付書式を設定しそれをコピーしてから範囲選択して「書式を貼り付ける」というやりかたのほうが、《理解のしやすさという点では》いいと思います。

補足日時:2001/02/09 01:52
    • good
    • 0

B列に日付であれば


書式設定したい範囲(c1:fnなど)を選んで
条件付き書式で
条件1 数式が  =weekday($b1)=1
条件2 数式が  =weekday($b1)=7
としてやれば
条件1は日曜日の行
条件2は土曜日の行 になります。
右辺の数字 1~7が 日~土曜日 に対応です。        

この回答への補足

問題の表は、月の1日がシートの3行目、2日が4行目、3日が5行目、、、、、となっているため、ご回答は、
条件1 数式が  
=weekday($b3)=1
条件2 数式が  
=weekday($b3)=7
との意味だと思います。実際にこのようにすると、質問で求めていた通り、土曜と日曜に書式が設定されました。ありがとうございました。
ただなんとなく、上記の数式の意味が私はまだしっくり理解できてないので、よく考えてみることにします。

補足日時:2001/02/06 00:07
    • good
    • 0

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

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

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

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

Qエクセルで種類を数える関数が無いのは何故?

エクセルで種類を数える関数が無いのは何故なんでしょうか?

エクセルで種類を数えるには、いくつかの関数を組み合わせるのが一般的ですよね?
直接数える関数が無いのは、訳があるんでしょうか?

Aベストアンサー

>>エクセルで種類を数える関数が無いのは何故なんでしょうか?

やっぱり、そういう関数が必要な方が全体からみたら少数派だと、エクセルの開発者たちが考えているからではないかと思います。
また、既存の関数を組み合わせたら、対処可能だから、無理して新しい関数を作る必要性もない、開発の優先順位が低いって判断もあるでしょうね。

私は、エクセルの表を作ったり、エクセルVBAでプログラムを作ったりしますけど、そういう関数が必要になったことが全くありませんし。

Q【EXCEL】条件付き書式、A列、C列、D列、E列が同じ値の時にB列の背景色を変えたい

お世話になります。

エクセルの条件付き書式の数式の使い方について教えて下さい。
A列、C列、D列、E列の値が同じ時にB列のセルの背景を青に
塗りつぶしたいと思っています。

なので、「数式を使用して、書式設定するセルを決定」、
「次の数式を満たす場合に値を書式設定」で、数式を
「=A1=C1=D1=E1」と入力し、書式、塗りつぶし、青、
を選択して、条件付き書式を設定しました。
すると、、、画像のような結果になります。

私の感覚だと画像でセルの値が「11」~「15」の時だけ
B列が青になると思うのですが実際の結果は画像の通りです。

先の話の通りA列、C列、D列、E列の値が同じ時だけ
B列のセルの背景を青にしたい場合はどうい数式になるのでしょうか?

すいませんが、詳しい方、数式(関数?)で説明できる方よろしくお願い致します。

追記
可能でしたらA列、C列、D列、E列が空白の時はB列の背景色をなしにしたいと思っております。
→A列、C列、D列、E列に値があって、かつ同じ値の場合のみB列の背景を青にしたいです。

お世話になります。

エクセルの条件付き書式の数式の使い方について教えて下さい。
A列、C列、D列、E列の値が同じ時にB列のセルの背景を青に
塗りつぶしたいと思っています。

なので、「数式を使用して、書式設定するセルを決定」、
「次の数式を満たす場合に値を書式設定」で、数式を
「=A1=C1=D1=E1」と入力し、書式、塗りつぶし、青、
を選択して、条件付き書式を設定しました。
すると、、、画像のような結果になります。

私の感覚だと画像でセルの値が「11」~「15」の時だけ
B列が青にな...続きを読む

Aベストアンサー

AND関数を使えば判定ができるのでは?
 =AND(A2<>"",A2=C2,C2=D2,D2=E2)

A列には常に判定する数値が入っているなら「A2<>""」は不要です。

参考サイト
http://www.relief.jp/itnote/archives/003940.php

Qエクセルの関数で

エクセルの関数辞典を見ていたら、CUMPRINC関数というのがありました。
しかし、エクセルの「挿入」→「関数」→関数の分類で「財務」というのを選択したのですが、一覧表に載っていません。
どこに載っているのでしょうか?
どうすればこの関数を使えますか?
ちなみにシートの上でやっても関数の反応をしませんでした。

Aベストアンサー

Yahooで検索してみると、参考URLが引っかかりました。

参考になりませんか?

参考URL:http://money-sense.net/doc/20041215_224257.php

Qエクセル 関数 1と入力されたセルの隣の列の値から、一つ前に1と入力されたセルの隣の列の値の引き算

1と入力されたセルの隣の列の値から、一つ前に1と入力されたセルの隣の列の値の引き算をしたいです。
具体的に、添付した画像の表で説明します。
A列は、連続した数値が入っています。
B列には、ところどころに、1が入力されています。(空白のセルが多いです。)
C列には、B列で、1と入力されたセル(例:B6)と同じ行のA列のセル(A6)の値から、B列で、一つ前に1と入力されたセル(B2)と同じ行のA列のセル(A2)の値の引き算をしたいです。
いまのところ、C列の結果は、D列にしめしたような計算で、ひとつずつ計算しています。

C列を、自動的におこなってくれるように工夫したいのですが、どんな関数をつかったらよいかわからないので、教えてほしいです。
補足ですが、行の入れ替え(サイズを変える、等)はしたくないです。(列の挿入はもちろんOKです。)

どうぞよろしくお願いします。

Aベストアンサー

D列を作業用に使用します。D列を最終的には見えないように設定してください。(文字色を白にするなど)
D1セルに「=A1*B1」
D2セルに「=IF(B2<>1,D1,A2*B2)」
D3セルより下はD2セルをコピー
C1セルに「=IF(D1=0,"",D1)」
C2セルに「=IF(D1=D2,"",D2-D1)」
C3セルより下はC2セルをコピー

Qエクセルの関数 ネスト

エクセルの関数 ネスト

エクセルの関数で、ネストさせるときがあるとおもうのですが、

関数を内側に書いたらよいのか外側に書いたらよいのか分からなくなる時があります。

エクセルの関数に関してわかりやすく書いてあるページなどありますか。

Aベストアンサー

こんばんは

Excel2003までは、ネストが7まで、2007では64までが可能です。
http://www.google.co.jp/search?hl=ja&source=hp&q=excel+%E3%83%8D%E3%82%B9%E3%83%88%E3%80%802003%E3%80%802007&aq=f&aqi=&aql=&oq=&gs_rfai=

「仕様上は可能」でも、複雑なネストは間違いが生じやすいですし、変更もしにくくなります。「出来るだけネストはしない」「適宜、中間結果をセルに出力する」という方法を採った方が、間違いが少なく、柔軟性のあるシステムになると思います。

>エクセルの関数に関してわかりやすく書いてあるページなどありますか。
関数の個別の機能ならば、Webサイトも書籍も多数あるのですが、「組み合わせて使う」というのはその場その場での発想になってしまうと思います。

Qエクセルで同じA列の中に、1,2,3,4,5,6,2,3,4,2,1,3,2,2,2,3,1という

エクセルで同じA列の中に、1,2,3,4,5,6,2,3,4,2,1,3,2,2,2,3,1,3,1というような順番で数字が並んでいます。

その数字の中で、1→3と3→1になるものがいくつあるか求めたいのですが、出す関数・マクロがわかりません。
教えていただけないでしょうか?

よろしくお願いします。

Aベストアンサー

こんばんは!

>A列の中に
とは行方向に数値が入っている!というコトでしょうか?

そうであれば
表示したいセルに
=COUNTIFS(A1:A1000,1,A2:A1001,3)+COUNTIFS(A1:A1000,3,A2:A1001,1)
としてみてください。

「1」の次の行が「3」の場合と
「3」の次の行が「1」の場合をプラスしています。m(_ _)m

Qエクセル関数の解読サイトなんてありますか?

エクセル関数の解読サイトなんてありますか?

いつもお世話になっております<(_ _)>

エクセルファイルに関数の入った数式が入力されています。
セルごとに複数の関数が入っていますが、私にはちっともわかりません。

そこで質問です。
こんなとき「エクセル関数を解読」してくれるようなサイトってありませんか?

たとえば検索窓があってそこに「=SUM(S1:S13)」わからなくて困っている関数式を入力。
すると答えの別ボックスに「S1~S13までの数値の合計」と出てくるようなサイト。

それに近いサイトでも良いので知っている方がいらっしゃればぜひ、教えてください<(_ _)>

Aベストアンサー

もし、

=IF(E14="","",IF(O14="",(IF(E14>"18:00"*1,"18:00",E14)-IF(C14<="8:00"*1,"8:00",C14))*24*1300,(IF(E14>"18:00"*1,"18:00",E14)-IF(C14<="8:00"*1,"8:00",C14))*24*1625))

だったら、どういう文章が出て欲しいのでしょうか?

もしE14が空白だったら、
 空白、
そうじゃなかったから、
 もしO14が空白だったら、
  (もしE14が18:00より大きかったら18:00、そうじゃなかったらE14)-(もしC14が8:00以下だったら8:00、そうじゃなかったらC14)×24×1300
 そうじゃなかったら、
  (もしE14が18:00より大きかったら18:00、そうじゃなかったらE14)-(もしC14が8:00以下だったら8:00、そうじゃなかったらC14)×24×1625

って感じですか?
数式をそのまま読解したほうが解りやすくないですか?

Q「セルの書式設定」の「ユーザー定義」でセルの値がTRUEなら○FALSEなら×と表示する方法について

マイクロソフトのエクセル2000で
「セルの書式設定」の「ユーザー定義」を
[=1]"○";[赤][=2]"×"にすると、
1なら○、2なら赤字の×をセルに表示される機能がありますが、
これを応用してTRUEなら○、FALSEなら赤字の×をセルに表示したいと思い、
[="TRUE]"○";[赤][=FALSE]"×"と設定してみたのですが、
上手く行かず困ってます。どこが違うのか、それともこの方法では出来ないのかを教えてください。

補足
何故これをやりたいのかと言うと、フォームのチェックボックスを使用し
「コントロールの書式設定」の「リンクするセル」の返り値が
TRUEとFALSEなので、このセル自身を見やすい文字に変更したいと思ったので・・・。
リンクするセルと違うところに○×を置くのは簡単にif関数で出来るんですが、
リンクするセル自身を○×に置くのができないです。

お手数かと思いますが、セルの書式設定に拘らず、
何らかのヒントを知ってる方、教えてください。

Aベストアンサー

質問のような表示ができるようにしてみました。(Excel97,2000で確認)
チェックボックスが何個あるか分かりませんので、2個のケースです。数によって『チェックボックス-1用』等を増やして下さい。『チェックボックス-1』に『チェックボックス-1用』のマクロを登録します。

※質問から推測すると、フォームのチェックボックスを使われているようですが、Excel97以降ならコントロールツールボックスのチェックボックス(他のコントロールも)を使われたほうがいいと思います。新しいし、設定も楽でコードも書き易いです。下はフォームのチェックボックスということで思い出しながら書いてみました。(使えるプロパティが無いのが欠点ですね)

※チェックボックスのリンクするセルを見えないところ(セル)を指定して(別シートでも)、表示したいセルに
  =チェックボックスのリンクするセル番地*1 (または+0)とすれば
「True」、「False」という Bool値を数値に変換できるのでマクロは不要になると思われます。


チェックボックスのリンクするセルの書式は [=1]"○";[赤][=0]"×" とします。

↓ここから。チェックボックスのあるシートのコードウインドウに貼り付けます。
Dim ChechBoxAddress As String 'チェックボックスのリンクするセルの番地
Dim ChechBoxClickFlg As Boolean 'チェックボックスをクリックすればTrue

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address = ChechBoxAddress Then
    'チェックボックスのクリックだけに反応させる
    If ChechBoxClickFlg = True Then
      '選択されたセルがチェックボックスのリンクするセルなら
      'True→1、False→0に書き換える(チェックボックスの選択状態は変わらない)
      If Target.Value = True Then
        Target.Value = 1
      Else
        Target.Value = 0
      End If
      ChechBoxClickFlg = False
    End If
  End If
End Sub

'チェックボックス-1用(個々のチェックボックス用。例:F3がリンクするセル)
Sub CheckBox1_Valuechange_Numeric()
  'リンクするセルをセットする
  ChechBoxAddress = "$F$3": selectChechBoxRange ChechBoxAddress
End Sub

'チェックボックス-2用(個々のチェックボックス用。例:F5がリンクするセル)
Sub CheckBox2_Valuechange_Numeric()
  'リンクするセルをセットする
  ChechBoxAddress = "$F$5": selectChechBoxRange ChechBoxAddress
End Sub


'チェックボックスのリンクするセルを選択する(共通)
' ※チェックスボックスのクリックではWorksheet_SelectionChangeが起きないため自力で動かす
Sub selectChechBoxRange(rgChkBox As String)
  Dim rg As Range 'アクティブセルの番地を退避
  Set rg = ActiveCell

  If rg.Address <> rgChkBox Then
    'アクティブセルがチェックボックスのリンクするセルでなかったらリンクするセルを選択する
    Range(rgChkBox).Select
  Else
    'アクティブセルがチェックボックスのリンクするセルならリンクするセルの斜め右下を選択する
    rg.Offset(1, 1).Select
  End If
  '元のアクティブセルを選択状態にする
  rg.Select
End Sub

質問のような表示ができるようにしてみました。(Excel97,2000で確認)
チェックボックスが何個あるか分かりませんので、2個のケースです。数によって『チェックボックス-1用』等を増やして下さい。『チェックボックス-1』に『チェックボックス-1用』のマクロを登録します。

※質問から推測すると、フォームのチェックボックスを使われているようですが、Excel97以降ならコントロールツールボックスのチェックボックス(他のコントロールも)を使われたほうがいいと思います。新しいし、設定も楽でコードも書き...続きを読む

Qエクセル関数を、書き写して分析できるツールはある?

タイトルの件、質問します。

エクセルの関数を分析する際に、エクセルの数式バーや、セルに入っている関数を
F2を教えて見るのでは、見にくい場合があります。

現在は、私は、メモ帳に関数をコピーして、分析したり、修正したりしています。
エクセルの機能or他ソフトで、関数を分析できるツールはあるのでしょうか??

【エクセルバージョン】
2003、2007

Aベストアンサー

難解な数式を理解したいとき,最も便利に利用できるのは,2003ではツールメニューのワークシート分析にある「数式の検証」です。
2007では数式タブにあります。

メンドクサイ数式のセルで数式の検証を使い,どの関数やどのカッコから計算が進んでいくのかを1ステップずつトレースして理解します。また意図しない結果がどの段階で発生しているのか追跡します。

このやり方は勿論間違った数式(意図しない結果が出てきた場合)を追跡するのにも使いますが,むしろ誰かに教わった「正しい数式」を理解する時に便利な方法です。
そもそも計算が通っていない(たとえばカッコの対応が間違えていて,Enterしても受け付けてくれないようなミスをしている場合)には使えません。



また,数式バーの中で数式の「中」にカーソルを入れて左右の矢印キーでカーソルを動かしていったときに,「(」や「)」をまたいだ瞬間に,対応する「閉じカッコ」「始まりのカッコ」が色つきで強調表示されるのを確認しながら,カッコの対応がまちがえてないかなどを調べるのも簡易な良い方法です。


あまり使わない方法ですが,数式の中で適宜ALT+Enterを打って「セル内改行」してしまい,数式を縦に分解して書いてみるのも整理しやすい方法のひとつです。

難解な数式を理解したいとき,最も便利に利用できるのは,2003ではツールメニューのワークシート分析にある「数式の検証」です。
2007では数式タブにあります。

メンドクサイ数式のセルで数式の検証を使い,どの関数やどのカッコから計算が進んでいくのかを1ステップずつトレースして理解します。また意図しない結果がどの段階で発生しているのか追跡します。

このやり方は勿論間違った数式(意図しない結果が出てきた場合)を追跡するのにも使いますが,むしろ誰かに教わった「正しい数式」を理解する時に便利...続きを読む

QExcel関数  A列の値とC列の値の間であればD列の値が抽出される関数

いつもお世話になっております。
F1にある数値を入れ、その数値が一覧表の中の範囲にマッチすればその数値を集計表シートのセルG1に反映したいのです。
例えば
A B C D E F G
1    1 ~ 1000  70 1200 ?
2  1001 ~ 1500  85
3  1501 ~ 2000  92
というような表があるとします。
F1に「1200」と入力するとG1には「85」と出るようにするにはG1にどのような関数を入れたらいいでしょうか。
必要があれば左の数値と~、右の数値は便宜上3列に分けて入力しています。
宜しくお願い致します。

Aベストアンサー

VLOOKUP関数でできます。

求める数値がD列にあるとします。
F1の値を $A$1:$D$3の範囲の左端の列から検索して、D列(検索範囲の4列目)の値を求めます。
セルG1に
=VLOOKUP(F1,$A$1:$D$3,4,TRUE)

一覧表を分かりやすくするために3列に分けているのだと思いますが、
値を求めるだけなら、B列、C列の「~1000」などは不要です。
B列、C列を削除して、「70,85,92・・・」をB列にしておけば
=VLOOKUP(F1,$A$1:$B$3,2,TRUE)
で求められます。

VLOOKUP関数をヘルプで参照していただくとわかると思いますが、
>TRUE を指定するか省略すると、検索値 が見つからない場合に、検索値 未満で最も大きい値が使用されます。
検索値が1200の場合、1200はA列にありませんが、1200未満でもっとも大きい値「1001」に対応する「85」が得られます。


人気Q&Aランキング

おすすめ情報