- 締切済み
Excelの関数・マクロについて教えて下さい。
某HN クロメート(Chromate)(@CoalTar)の回答
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
No.2、No.3です >B5の作業員の最終出勤が1日だった場合k5の8日が塗りつぶされる。 >B6の作業員の最終出勤が3日だった場合m6の10日が塗りつぶされるというものです。 そのためには、 A. チェックした日(空白セルのある日の最後) B. A.から導き出した範囲内におけるその人の最終出勤日 がわかる必要があります。 よって、回答No.2では A.を求めるために D36セルに =IF(E36<>"","勤",IF(COUNTIF(D3:D35,"出")<>ROWS(D3:D35),"勤","")) 右へオートフィル としてみました。 しかし、文字通り、空白セルのある日を探すなら =IF(E36<>"","勤",IF(COUNTBLANK(D3:D35),"勤","")) 右へオートフィルです。 小の月の31日などに「出」を入れない仕様なら =IF(D1="","",IF(E36<>"","勤",IF(COUNTBLANK(D3:D35),"勤",""))) としておくとよいと思います。 AI36セルは 空白セルのままにしておいてください。 回答No.3ではB.を求めています AJ36セルに =COUNTIF($D$36:$AH$36,"勤") AJ3セルに =MATCH("ー",$D3:INDEX($D3:$AH3,,AJ$36)) 下へオートフィル としています。 $D3:INDEX($D3:$AH3,,AJ$36) はセル範囲を表し、仮に「勤」の数が2だったら、D3:E3セル範囲となります MATCH関数でその範囲内での何かが書いてある日を最終にしています。 「出」以外の文字が入るなら「出」が入っているセルの最終日(最大値)を探す必要があります =MAX(($D3:INDEX($D3:$AH3,,AJ$36)="出")*($D$1:INDEX($D$1:$AH$1,,AJ$36))) A.の範囲までの各人の配列と日を掛けて、「出」の入っている最終日を出しています。 セル上で配列を認識させるために[Ctrl]+[Shft] +[Enter] で確定します。 この数式を直に条件付き書式に組み込めば、[Ctrl]+[Shft] +[Enter]は不要ですが。 これで、必要なデータA、B.がそろいました。 あとは、塗りつぶしです。この表では最初の7日間は塗りつぶしがないので K3:AH35セル範囲をK3セルから選択して、条件付き書式 数式が =$AJ3+7=K$1 最終出勤日+7が日と同じだったら色を塗る コピペだけで終わりにせず、ヘルプなどで各関数の意味を把握してください。 ヘルプ以上の高度な使い方もしていますが、、、
関連するQ&A
- Excelマクロで教えて下さい。
Excelマクロで教えて下さい。 シート1に下記のような表がありまして その表の有休・公休取得者の名前を日にち別に シート2にまとめたいのですがマクロを教えて下さい。 ・日にちは3ヶ月並びます。 ・人数は50人います。 ・休みの種類は5種類あります。 ・有:有休 公:公休 出:出勤(本来は空欄です) 表の入力が難くわかり難いですが宜しく御願い致します。 シート1 名前 3/1 3/2 3/3 3/4 3/5 A氏 出 有 有 出 出 B氏 有 有 出 公 出 C氏 出 出 有 有 出 D氏 出 有 出 出 有 E氏 有 出 出 有 公 シート2 有休 3/1 B氏 E氏 3/2 A氏 B氏 D氏 3/3 A氏 C氏 3/4 C氏 E氏 3/5 D氏 公休 3/1 3/2 3/3 3/4 B氏 3/5 E氏
- ベストアンサー
- オフィス系ソフト
- Excelのマクロについて教えて下さい。
公休一覧表を作ったのですが加えたい機能があります。 2の行に1~31日の日付があり、 Bの列に30人の作業員名が入力されています。 休んだ日の所に都度、公休の公という文字を打っていき その月に何回休んでるかを シート右のAIの列に表示しています。 加えたい機能というのは、 B1の作業員の6日に公を入力したら 一週間後の13日に自動で×(印になるようなもの) を入力させたいです。 B1の作業員の7日に公を入力すると 13日の印が消え、7日の一週間後の14日に印が付く。 というような形で30人分自動で一週間後に印を付けたいです。 VBAなどマクロなど関数なども含め、何か手があれば初心者にもわかるよう 詳しく教えていただけると助かります。よろしくお願いします。
- 締切済み
- オフィス系ソフト
- エクセルの関数について2
エクセルに詳しくないので関数に強い方宜しくお願いいたします。 1列目の上から順に「休」・「出」・「早」・「出」・「休」・「(空白セル)」・「遅」と入力してあったら「休」と「(空白セル)」をカウントしないでそれ以外をカウントして「出」・「早」・「出」・「休」・「遅」なので「4」と表示されるような関数はあるでしょうか?
- ベストアンサー
- Excel(エクセル)
- エクセルの関数について質問です
シフトの出勤表を作っていますが、 「出」という文字は1 「半」という文字は0.5 で数えて出勤日を集計できる表を作りたいのですが どういう関数がよいでしょうか。 ご回答お願い致します。
- 締切済み
- Excel(エクセル)
- Excelの関数です・・
出勤簿からを別表を作成しています。 その表で、名前が入力するセル(A1:A10)の列から 関数のCOUNTA(A1:A10)で合計人数を求めたいのですが、 A1:A10のセルのうちA1:A5には別の表からリンクした数式が入っています。A1:A5まで(リンク元の表は空白になっている場合)空白でも合計人数のセルに「5」となります。リンク元が空白の場合、表の合計人数が「0」になる方法がわかりません・・・分かる方、どうか教えてください。よろしくお願いいたします。
- 締切済み
- オフィス系ソフト
- ExcelのIF関数を使って
学校の成績一覧表を作っています。成績は◎、○、△の3段階でつけます。 一覧表の中に、◎と△だけをつければ、残りの空白セルには、マクロで○が入るようにしてあります。 Excelのバージョンは2003です。 しかし、クラスによって人数が違うので、自動的に○が入るようにしてあっても、どこまで入れたらいいのかは変わってきます。 そこで、氏名を入れるセルを参照し、「もし、このセルが空白だったら、その下のセルはすべて空白になる」というような関数を入れておけばいいのかなと考えました。が、その関数がわかりません。 どなたか、教えてもらえませんでしょうか? C1 D1 E1 F1 G1・・・・・ 伊 佐 鈴 山 藤 藤 木 田 B2 読む力 ○ ◎ △ ◎ B3 書く力 ◎ ○ ○ △ 分かりにくいでしょうが、上のような感じで作ってます。 上の場合、G1セルに名前が入っていないので、G2セルから下は、マクロでは○が入りますが、関数によって空白にしたいのです。 よろしくお願いします。
- 締切済み
- オフィス系ソフト
- エクセル関数 マクロ
EXCELで作ってある表に数字を入力する時、 (例)セルA1⇒B1⇒C1(⇒D1⇒F1)と入力した後エンターキーを押したら、 セルA2⇒B2⇒C2(⇒D2⇒F2)へ、またエンターキーを押したら、 セルA3⇒B3⇒C3(⇒D1⇒F3)と移動する方法(関数?マクロ?!)を教えて下さい。
- 締切済み
- オフィス系ソフト
- エクセル マクロを使った表について
エクセル初心者です。マクロを、教えていただけませんか。 シート1:入力シートです。 例えば以下のような表があります。 月 1日 2日 3日 4日・・・31日 個別物件名1 A B C 空白 D 個別物件名2 E 空白 空白 F 空白 個別物件名3 空白 G H 空白 I シート2:シート1のリンクシートです。 月 1日 2日 3日 4日・・・31日 個別物件名1 ○ ○ ○ 空白 ○ 個別物件名2 ○ 空白 空白 ○ 空白 個別物件名3 空白 ○ ○ 空白 ○ 上記のようにシート1には毎月、ある決まりに沿ってアルファベットを 入力するのですが、入力し終わったら(入力と同時でも構いません) シート2には、そのアルファベットを入力してある位置に印として ○を打ちたいんですが、どのように組んでいけばよいのか解りません。 すいませんが、ご教授ください。よろしくです。 補足 ・シート1とシート2の表の書式はまったく違うため、貼り付けは できません。 ・結局は、シート1のあるセルに文字が入力されると自動的に シート2のセルに○の印がつき、上記表で言えば、反映回数?は 9回ですが月によって反映回数は変わります。(入力と同時の場合) 説明が下手ですいませんがよろしくお願いします。
- 締切済み
- オフィス系ソフト
補足
返信遅くなってしまい申し訳ございません。 出勤して朝から説明を見て試してみたのですが、 印を付ける事ができません。 何か抜けているのか どこが間違っているのか教えて欲しいです。 > D36セルに > =IF(E36<>"","勤",IF(COUNTIF(D3:D35,"出")<>ROWS(D3:D35),"勤","")) > 右へオートフィル 完了し、チェックした日まで勤を表示することができました。 > AJ36セルに > =COUNTIF($D$36:$AH$36,"勤") 完了し、AJ36にチェックした日付を表示できました。 > =MATCH("ー",$D3:INDEX($D3:$AH3,,AJ$36)) > 下へオートフィル 完了し、個人の最終出勤日を表示できました。 「出」以外の文字は入力しないので >「出」以外の文字が入るなら「出」が入っているセルの最終日(最大値)を探す必要があります > =MAX(($D3:INDEX($D3:$AH3,,AJ$36)="出")*($D$1:INDEX($D$1:$AH$1,,AJ$36))) > A.の範囲までの各人の配列と日を掛けて、「出」の入っている最終日を出しています。 > セル上で配列を認識させるために[Ctrl]+[Shft] +[Enter] で確定します。 > この数式を直に条件付き書式に組み込めば、[Ctrl]+[Shft] +[Enter]は不要ですが。 は飛ばしました。 最後にD3~AH35をアクティブにし、 =$AJ3+7=K$1を条件付き書式に登録しました。