アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル初心者級です。
(関数はある程度理解できますが、マクロはできません)

今、休暇管理のエクセルシートを作っていて
下のような表を作成しています。

    A      B      C     D     E     F…
1 [氏名]    [合計]   [4/1]  [4/2]  [4/3]  [4/4]
2 山田太郎  1.5日        半休        全休
3 田中花子  0.5日        半休
4 鈴木美穂  1.0日              全休


このデータを基に別シートのカレンダに落とし込みたいのです。


    A     B     C     D     E     F     G
1 2011年4月
2  日曜   月曜   火曜   水曜   木曜   金曜   土曜
3                                 1 2
4                                   山田・田中
5   3     4     5     6     7     8 9
6 鈴木    山田


A1セルに年月を入れたら自動で日付が入るようカレンダは作成しました。
後は、基シート(上の表)でその該当日に
全休なり半休なりの言葉を入れている人を抽出し
カレンダの日付の下に名前を入れられるようにしたいのです。

(1)カレンダと表の日付が一致していて
(2)その日付の表の所に何かしらの文字が入っている人

を自動で抽出したできるようにしたいのですが
何か良い方法はないでしょうか。
このシートはパソコンを使い慣れていない人も使用するため
できれば関数で一発でできるようなものがあれば有りがたいのですが…
アドバイスをいただけないでしょうか。
よろしくお願いいたします。

A 回答 (1件)

関数なら判るのでしたら,範囲を指定して(たとえばA2:A5のように)セルの文字列を結合する関数は無い事はご存じですね。



比較的簡単な方法:
管理表の5行目など(実際は10行目でも20行目でも構いません。邪魔にならないところに)に
C5:
=SUBSTITUTE(TRIM(CONCATENATE(IF(C2="","",LEFT(TRIM($A2),FIND(" ",JIS(TRIM($A2)&" "))-1))," ",IF(C3="","",LEFT(TRIM($A3),FIND(" ",JIS(TRIM($A3))&" ")-1))," ",IF(C4="","",LEFT(TRIM($A4),FIND(" ",JIS(TRIM($A4))&" ")-1))))," ",",")
と記入して,31日の列まで右にコピーしておきます。
式の中で使っているスペースは全て全角のスペースなので,間違えないよう注意してください。

もちろんこんなチマチマした式は入力する人には一切触って貰う必要はありませんから,行を隠すなり目に付かないところに追いやるなりシートを保護するなりして,触られないよう手はずをしておきます。



カレンダーに「日付が入る」とは,数字の1,2,3を計算で出してあるのか,それとも「年/月/日」で日付を計算させて日付の値のみ表示させてあるのか,どっちでしょうか。そこが変わると数式も変わります。
また,日付の無い(先月末と来月になる)マス目には,やはり日付を計算して条件付き書式などで目に見えない仕込みをしてあるのか,それとも式を駆使して""を計算させてあるのかどちらでしょうか。こういう違いでも,数式はイチイチ手だてを変えてやらないとまともに計算できません。

123と""で計算してあるとして:
A4:
=IF(A3="","",INDEX(Sheet1!$C$5:$AG$5,A3))
右にコピー,2週目以降にコピー
などのような具合で出来ます。



#メンドクサイ方法:
勿論,前段に書いたような式の組み立てを無理矢理カレンダーのA4の式の中に組み込んでも,そりゃやればできますので,もしどうしてもそうしたければチャレンジしてみてください。
「[エクセル]複数条件を抽出する関数」の回答画像1
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ございません。
ご丁寧にお教えいただきありがとうございました。

教えていただいた数式を駆使してみたものの
なかなか思い通りのものは作れず
時間もなかったので今回は諦めることになりました。
次年度以降の課題とし
よりわかりやすい表にまとめられるよう
excelを使いこなす努力をしていきたいと思います。

今回は本当にありがとうございました。

お礼日時:2011/08/22 01:00

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