[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『importrangeでシフト表から今日出勤する人と勤務時間を参照したい』(おみやさん)
ご質問させていただきます。よろしくお願いいたします。
googleスプレッドシートでシフト表と出勤簿という異なるファイルを管理しております。
現在はシフト表のデータを転記して出勤簿を作成しているのですが、出勤簿に入力した日付に出勤する人と勤務時間を関数で参照できないかと考えておりあます。
■シフト表
A B C D 1 A氏 B氏 C氏 2 4月1日 10:00-19:00 10:00-19:00 3 4月2日 10:00-19:00 10:00-19:00 4 4月3日 10:00-19:00 10:00-19:00 10:00-19:00
↓↓↓
■出勤簿
A B C 1 4月2日 2 出勤 A氏 C氏 3 勤務時間 10:00-19:00 10:00-19:00
< 使用 アプリ:googleスプレッドシート、使用 OS:Windows10 >
ネットで調べたのですが、自分では難しくみなさまのお力をお借りしたいと思います。
何卒よろしくお願いいたします。
(おみやさん) 2022/03/04(金) 22:34
SpreadSheetに関する質問なので、回答はつきにくいと思います。
SpreadSheetは初心者ですが、調べてみました。
(1)下記のレイアウトにあるA1:D4 が元データです。
(2)これを縦持ちのデータに変換します。 この操作はunpivotと呼ばれることが多いです。 (unpivotは "pivot形式を元に戻す" というような意味です。)
この関数はデフォルトでは設けられていないので、 https://www.benlcollins.com/spreadsheets/unpivot-in-google-sheets/ にある unpivotという GAS(Google Apps Script)を借用しました。
A7セル =unpivot(A1:D4,1,1,"職員","時刻") と入力します。
(3)そこから、当日日付だけのデータをQueryで抽出します。
A19は日付入力用セルです。
B19セルに以下を入力すると、B19セル以降に結果が展開されます。 =transpose(query(A8:C16,"Select B,C where A = date '"&TEXT($A$19,"YYYY-MM-DD") & "' and C <> """" "))
<< シートレイアウト >>
A B C D 1 日付 A氏 B氏 C氏 2 4月1日 10:00-19:00 10:00-19:00 3 4月2日 10:00-19:00 10:00-19:00 4 4月3日 10:00-19:00 10:00-19:00 10:00-19:00 5 6 7 日付 職員 時刻 8 4月1日 A氏 10:00-19:00 9 4月1日 B氏 10:00-19:00 10 4月1日 C氏 11 4月2日 A氏 10:00-19:00 12 4月2日 B氏 13 4月2日 C氏 10:00-19:00 14 4月3日 A氏 10:00-19:00 15 4月3日 B氏 10:00-19:00 16 4月3日 C氏 10:00-19:00 17 18 19 4月2日 A氏 C氏 20 10:00-19:00 10:00-19:00
上記はあくまでテスト用です。 実際にはシートを分けたりするでしょう。 それはそちらで工夫してください。 最終結果もレイアウトがちょっと違うけど、簡単に修正できます。
(γ) 2022/03/05(土) 21:52
(γ) 2022/03/05(土) 22:54
ありがとうございます。
早速試してみたいと思います。
(おみやさん) 2022/03/07(月) 10:24
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.