質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Q&A

解決済

3回答

5490閲覧

勤怠管理システムの作り方について

dell_0

総合スコア25

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

0グッド

0クリップ

投稿2020/12/24 07:30

いつもお世話になっております。

googleフォームとgoogleスプレッドシートで勤怠管理システムを作りたいと考えております。

①フォームの結果を②スプレッドシートで管理し、そのシートを見やすく③のように整えて自動出力したいのです。

別々のスプレッドシートにしたいため、VLOOKUPとIMPORTRANGEを使用しているのですがうまくいきません。

スプレッドシート関数がわからず、困っております。
お知恵をお貸しいただけないでしょうか

宜しくお願い致します。

①フォーム
イメージ説明

②スプレッドシート
イメージ説明

③勤怠スプレッドシート
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

ほぼ同じ表を使用してます。
関数で、コストかけずというお気持ちすごくわかります。。。
もしかしたら簡単とは言えないかもしれませんがご参考になればと思います。

②のE~G列で準備式を作る
F2で日付を出す(表示形式を日付にする)

=ArrayFormula(if(A2:A="","",int(A2:A)))

 ↓
G2で時間を出す(表示形式を時間にする)

=ARRAYFORMULA(if(A2:A="","",A2:A-INT(A2:A)))

 ↓
E2でアドレス、種別、日付で結合する

=ARRAYFORMULA(if(A2:A="","",B2:b&C2:c&F2:F))

③の形を変える
イメージ説明
②E2の結合と同じ条件でvlookupする
例)出勤のとき(B5)

=ArrayFormula(vlookup(D2&B4&A5:A36,'②'!E:G,3,0))

B4を退勤、休憩、復帰のセルに変える

これで行けると思います!!
遠回りなやり方でしたら申し訳ないです!

投稿2020/12/27 06:55

編集2020/12/27 06:57
mozoushi_045

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dell_0

2020/12/28 03:32 編集

ご回答ありがとうございます。 やはりなかなかコストをかけることができず、ご理解いただき、大変感謝です。 質問がございます。 新しいスプレッドシートを頂いたように変更したのですが、うまくできません。 >②E2の結合と同じ条件でvlookupする >例)出勤のとき(B5) >=ArrayFormula(vlookup(D2&B4&A5:A36,'②'!E:G,3,0)) こちら'②'はどのようにしたらよろしいでしょうか? また、出力をためていくためにはA36をA1001とかにすれば大丈夫なのでしょうか? 宜しくお願い致します。
mozoushi_045

2020/12/28 11:21

想定として、同じシートでフォーム回答と個人ページをタブ分けにした場合で関数を組んでいるので'②'はフォーム回答のタブ名を入れていただいたら大丈夫です! もしシートを分けて管理されるのであれば'②'にIMPORTRENGEを入れるか、③のシートに②をIMPORTRENGEしてそのタブ名をいれていただけたらと思います! また、=ArrayFormula(vlookup(D2&B4&A5:A36,'②'!E:G,3,0))の「A5:A36」は日付になります。 1ヶ月単位なら31日ぶんなので「A5:A36」で収まると思いますよ! ちなみに、1つ漏れていたのですが、きっとこれだとフォーム送信されていない日がエラーになるので代用としてこちらがいいかもしれません↓ =ArrayFormula(IF(A5:A36="","",vlookup(D2&B4&A5:A36,'②'!E:G,3,0)))
dell_0

2021/01/07 05:16

ご回答ありがとうございます。 無事、動作確認取れました。 この度はご丁寧にありがとうございました。 とても勉強になりました。 宜しくお願い致します。
guest

0

勤怠管理システムとしてGoogleフォーム + スプレッドシートが適してるかの部分は他の方が書かれているので、とりあえず ②のフォームの回答を③の形に集計したいという部分だけ回答しておきます。

一番簡単なのは関数じゃなくてピボットテーブルを使う方法です。

タイムスタンプの部分を 年-月-日 でグループ化して、列を種別、値はとりあえずタイムスタンプをMAXで取得する形でいかがでしょうか?表示形式で時間だけ表示させれば、希望の形になります。条件にA列が空白以外としておけば、範囲を広めに設定しておいて自動更新される形にされ、日付を用意して関数で引っ張ってくる方法より楽かと

別スプレッドシートから読み込む場合は、IMPORTRANGEを入れた作業用シートに出力してからピボットテーブルを作成ください。

Qury関数なら作業用シート経由せずに可能ですが、普通にピボットテーブルでやった方が希望の形に近いですし後々のメンテナンス的にも楽だと思います。

投稿2020/12/25 00:41

sawa

総合スコア3002

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dell_0

2020/12/28 03:10

ご回答ありがとうございます。 頂きましたコメントを参考に、ピボットテーブル挑戦してみます。 とても分かりやすく、勉強になります。 ありがとうございました。
guest

0

Google Forms より Glide の方が有料になっちゃうけど簡単にいい感じの作れますよ
簡単過ぎる!GoogleスプレッドシートからPWAアプリを開発できる「Glide」を使ってみた! - paiza開発日誌

投稿2020/12/24 07:41

A_kirisaki

総合スコア2853

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dell_0

2020/12/24 07:51

早速のご回答、誠にありがとうございます。 こちら費用をかけずにとのお達しなので、試行錯誤しております。。。 とても有益な情報、ありがとうございます。 勉強させていただきます。
YT0014

2020/12/24 16:20

無料の勤怠管理システムも存在しますので、そちらの導入をご検討されてはいかがでしょうか?
dell_0

2020/12/28 03:08

コメントありがとうございます。 自分としては便利なものをたくさん取り入れたいという考えなのですが、管理ソフトはなるべく増やさないという方針もあり、googleフォームとスプレッドシートでできないか思案中です。 ありがとうございました。
YT0014

2020/12/28 04:12

javaですが、オープンソースの勤怠管理システムなので、紹介だけさせてもらいます。https://mosp.jp/
dell_0

2020/12/28 04:18

ありがとうございます。 参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問