プロが教える店舗&オフィスのセキュリティ対策術

Excelでシフト作成をする際にもっと効率よく出来たらなと試行錯誤しているのですが定休日の方の「休]を関数を使い自動で入力出来たらなと思っています。
図の様にシフト表があるのですが「休」の文字を定休日のセルから関数で求められますでしょうか?
分かる方、詳しい方よろしくお願い致します。

「Excelでシフト作成の際の定休日の自動」の質問画像

質問者からの補足コメント

  • うーん・・・

    回答ありがとうございます。
    私の説明不足でした。申し訳ございません。
    Excelのバージョンは2010になります。
    添付しました図の様に定休日を別にしました。
    曜日はdの表示形式になっております。
    日付はaaaの表示形式になっており上記の内容から関数での定休日の方の「休」を右の表に自動で入力出来ますでしょうか?
    再度皆様のお力をお貸し下さい。
    よろしくお願い致します。

    「Excelでシフト作成の際の定休日の自動」の補足画像1
    No.4の回答に寄せられた補足コメントです。 補足日時:2016/07/24 13:34
  • うーん・・・

    ご返信ありがとうございます!
    色々と勉強して見ます。
    度々申し訳ございませんが再度お聞きしたい事がございます。
    文字での定休日の求め方は出来たのですが曜日がセルの日付に=で結ばれている場合の求め方はどうやればよろしいのでしょうか?
    図の様に曜日が日付に対し=で関連付けられている場合は上記の関数では空欄になり求める事が出来ません。
    WEEKDAY関数を使って求めるのでしょうか?
    最後のご質問とさせていただきますのでよろしくお願い致します。

    「Excelでシフト作成の際の定休日の自動」の補足画像2
    No.6の回答に寄せられた補足コメントです。 補足日時:2016/07/26 04:13

A 回答 (8件)

(1) D9セルに次式を入力する。


=IF(COUNTIF($B3,"*"&D$8&"*")=1,"休","")
(2) D9セルを選択して、I9セルまで オートフィルコピーする。
(3) D9セルからI9セルまで選択して、Cさんの行までオートフィルコピーする。
以上
「Excelでシフト作成の際の定休日の自動」の回答画像6
この回答への補足あり
    • good
    • 2
この回答へのお礼

回答ありがとうございます!
shorunさんの関数=IF(COUNTIF($B3,"*"&D$8&"*")=1,"休","")の関数で出来ました!
COUNTIFの関数にこんな使い方があったのに驚きです!
この様な関数は書籍から学べるものなのでしょうか?
また独学で学んだものですか?
参考になる書籍などありましたら勉強したいので差し支えなけれが教えていただけますか?
よろしくお願い致します。

お礼日時:2016/07/25 01:50

No6です


お礼ありがとうございます。
>この様な関数は書籍から学べるものなのでしょうか?
countif関数の基本的な説明をしている参考書はいろいろありますが
このような例題ズバリを解説している本を見付けるのは大変だと思います。
書店に行って、本人のレベルにふさわしい本をみるとか、

Excel の数式バーの左にあるボタン fx をクリックして関数挿入窓で
関数の分類をすべて表示し、適当な関数を選択して、この関数のヒントをクリックすれば関数の説明と例題をみることができます。

それから
このカテで他の方の質問を沢山チェックしていると、その回答の中に、他の問題に応用することが出来るヒントに出会うことがあります。私の場合は、これが相当に役立っています。
    • good
    • 2
この回答へのお礼

IF関数と(OR(WEEKDAY)で出来ました。
この度はありがとうございました。

お礼日時:2016/07/31 04:42

Excelのバージョンが書かれていませんが、Excel 2007 以上だとすれば。



統一式で
D9を基点として

=IF(COUNTIFS($A$3:$A$5,$C9,$B$3:$B$5,"*"&D$8&"*")>0,"休","")

$A$3:$A$5:名前の範囲
$B$3:$B$5:定休日一覧
    • good
    • 1

その形の表に限るならとりあえずこれでできます。


D8=IF(OR(ISNUMBER(FIND(D$8,VLOOKUP($C9,$A$2:$B$5,2,FALSE)))),"休","")
あとは右方向と下方向に数式をコピーします。

A、B、C以外に人が増えたときに数式を変更する必要があります。
A列とB列は指名と定休日にしか使用しないのでしたら「$A$2:$B$5」の部分は「A:B」とすることでもOKになります。

ただ…
この種のことにExcelをご利用になる場合、人の数が増えるとか休みが変わるなどといった変更に対処しやすいよう、入力と計算と出力はもう少し分けて考えるべきだと思います。
    • good
    • 0

「定休日」の項目を1つのセルに1つの曜日を入れるようにしよう。


そうしないと処理が面倒になるだけだ。

紙の上に鉛筆で記入して作る時、どんな手順で作成するのかを考えてみよう。
その手順通りに作ればよいのです。

人によっては
「日曜日に休みの人は誰だろう」と調べて作成する人もいるでしょう。
 (日曜日が休みの人は上から何番目だから上から何番目に休みと記入しよう)
「この人は日曜日が休みだから日曜に休みと記載しよう」とする人もいるでしょう。
 (この人は日曜日が休みだから左から何番目に休みと記入しよう)
やり方はそれぞれ違いますが、どの方法でも最終的に目的のモノになります。

前置きはこんなもんでいっか。
>関数で求められますでしょうか?
そんな都合の良い関数は無い。
関数を組み合わせて関数式をつくるんだ。

まずは定休日をバラシて入力することから始めよう。
話はそれからだ。
この回答への補足あり
    • good
    • 0

元の作り方を変えたほうが良いですよ。


そのような作り方をするのならWordで一つずつ書いた方が綺麗にできます。
横着をしたいのでしたらそれ相応の作り方を覚えましょう。
    • good
    • 0

この右の表をまるごと、コピーして、数字のところを変えたら早いかもしれません。

数字は、連続してるので、入力簡単です。
    • good
    • 0

この表だと、休と入力するべき欄に、日付、曜日の根拠が無いため、認識できず計算出来ません。

24,25などの数字も、文字列として認識していますし、日、月などの曜日も文字列です。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このカテゴリの人気Q&Aランキング