[[20220304222122]] 『importrangeでシフト表から今日出勤する人と勤務氏x(おみやさん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『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


SpreadSheetは日頃から使っているわけではなく、1,2回ここで回答したぐらいです。
ですので、詳細を尋ねられてもお答えできないと思います。
参考になればよし、参考にならなければ捨ててください。
# 誤字修正。
(γ) 2022/03/05(土) 22:00

importrangeについて触れませんでしたが、
私の理解では、importrangeに細かいデータの形式変換をさせるといったことはできないと思います。
いったんデータを引っ張ってきて、そこから変換を施すのかと思います。
ですので、それは省略しています。普通に実行して下さい。

(γ) 2022/03/05(土) 22:54


γ 様

ありがとうございます。
早速試してみたいと思います。
(おみやさん) 2022/03/07(月) 10:24


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.