- ベストアンサー
Excelでログイン・ログオフの集計方法
- Excelを使用して、ログイン・ログオフの集計を行いたいです。1か月間のログデータを人別・日別に集計し、使用状況を把握したいです。
- ログイン・ログオフの集計方法をExcelで行いたいです。新しい日時のログインをログインとして集計し、古い日時のログオフをログアウトとして集計することで、使用状況を把握します。
- Excelを使用してログイン・ログオフのデータを集計する方法を教えてください。1か月間のログデータを人別・日別に集計し、使用状況を分析するために必要です。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>作業列を2列にした場合、ログオフ時間が表示されなくなってしまったので 「ログオフ時間が表示されなくなってしまった」とし書かれておられないという事は、ログオン時間の方は表示されているという事なのでしょうか? もしそうであるなら、以前仰っておられた >別のCSVからSheet1にコピーした際には、ログイン名・表示名・ログオンも表示されなくなり という状況と比べればログオン時間が表示される分だけ改善されている事になるというのに、何故、 >いったんその手前まで戻させていただきました。 という様な事をされたのでしょうか? >どのようなパターンの時に、ログイン名・表示名・ログオンとオフの時間が表示されたりされなかったりするのかいろいろ試しています。 Sheet1に存在しているログイン名や表示名までもが、Sheet2に表示されない場合があるという事なのでしょうか? ログイン名や表示名はSheet1にログイン名が最初に現れた行の行番号が小さい物から順番に表示される様になっている筈ですが、そうなってはいないのでしょうか? ログインとログオフの時間に関しては >ログイン :日時が新しい >ログオフ :日時が古い という条件でしたので、Sheet2の3行目の所で指定されている日において、最も遅い時刻にログインしたログイン時間と、最も早い時刻にログオフしたログオフ時間のみが表示され、その日にログインが行われなかった場合にはログイン時間は表示されませんし、その日にログオフが行われなかった場合にはログオフ時間は表示されません。 後、御質問内容にはログインとログオフに関してしか触れておられず、ログオンやログアウトに関しては何も触れておられなかったので、もしもSheet1のK列にログオンやログアウトと入力されている様なものがあったとしましても、それらを反映させるような関数にはしておりません。 後、一見するとログインやログオフと入力されている様に見えていても、「ログイン」や「ログオフ」という文字列の前後に空白スペースが付いている場合や、「印刷されない文字」が含まれている様な場合も、やはりログインやログオフとは見做されません。 後、ログイン時刻やログオフ時刻が表示されない場合に関してですが、Sheet3のA列とB列上にはその日時を表すシリアル値がちゃんと表示されているのかどうかという情報を御知らせ願います。(Sheet3においてその日時のシリアル値が表示されているべき場所は、Sheet1でその時刻が入力されているのと同じ行です) 以上御確認願います。
その他の回答 (4)
- kagakusuki
- ベストアンサー率51% (2610/5101)
>日付については、ご指摘いただいたSheet3のA列には、表示されますがSheet2には、反映されてないです。 その「Sheet2には、反映されてない」場合において、Sheet3のA列に入力されている関数とは、 =IF(OR(INDEX(Sheet1!$E:$E,ROW())="",$B2=""),"",INDEX(Sheet1!$E:$E,ROW())&"◆"&COUNTIFS(Sheet1!$E:$E,INDEX(Sheet1!$E:$E,ROW()),$B:$B,"<"&$B2)+COUNTIF(Sheet1!$E$2:INDEX(Sheet1!$E:$E,ROW()),INDEX(Sheet1!$E:$E,ROW()))&"◇"&IF(COUNTIFS(Sheet1!$E:$E,INDEX(Sheet1!$E:$E,ROW()),Sheet1!$K:$K,INDEX(Sheet1!$K:$K,ROW()),$B:$B,">="&INT($B2),$B:$B,"<"&INT($B2)+1,$B:$B,IF(INDEX(Sheet1!$K:$K,ROW())="ログイン",">","<")&$B2),"×",INDEX(Sheet1!$K:$K,ROW()))&"◆"&INT($B2)&"◇"&COUNTIF(A$1:A1,"*?◆1◇*?")+1) の方ではなく、それよりも前に提示した関数の事でしょうか? それでSheet3のA列に日付(シリアル値)を含んだ文字列が表示されるとなりますと、Sheet2にコピーしたCSVのシートのG列に入力されている日付を表しているデータに関する >「改行を指示する制御文字」等の何らかの「印刷されない文字」を含んだ という私の推測は外れていた様です。 但し、 >日付を表すシリアル値のデータではなく >文字列データである という点においては間違いでは無かったという確信がほぼ得られました。 確認のためにそのSheet2のG列のセル内における横方向の配置を[標準]([ホーム]タブの[配置]グループの所にある[文字列を左に揃える]、[中央揃え]、[文字列を右に揃える]の何れもが選択されていない状態)に設定してみて下さい。 それでもし日時の表示が左端に偏る様でしたら、それは日時を表すシリアル値データではなく、文字列のデータという事になります。(日時を表すシリアル値データならば、配置を[標準]とした際に、数値データと同様に右端に偏ります) 例え、セルの書式の表示形式が「yyyy/mm/dd h:mm」となっていたとしても、文字列データを入力する事は可能ですから、一見すると日付データに見えても、実際には文字列データである事はあり得る訳です。 例えば、セルの書式の表示形式が[文字列]に設定されている状態で日時や数値を入力し、入力し終えてから、表示形式を[標準]、[数値]、[日付]等に変更しても、データは文字列データのままです。 又、数値や日時の先頭に「'」(アポストロフィー)を付けますと、数値や日時のデータが文字列データに変換されます。 その様な文字列データ化した数値や日時は、「'」(アポストロフィー)が外れた状態にした上で(但し、Excelの置換機能では、この「'」を取り除く事は出来ません)入力し直しますと、通常の数値や日時のデータに戻す事が出来ますが、データ数が多い場合には、一つずつ入力し直していたのでは手間が掛かり過ぎます。 その様な場合には、以下の参考URLのページに記されている方法を使えば、まとめて数値や日時のデータに戻す事が出来ます。 【参考URL】 なんだ!カンタン!Excel塾 > エクセル技中級2 > 文字列を数値に変える http://kokodane.com/tec2_46.htm そして、文字列データ化しているSheet2のG列のデータを、日時のデータに戻してあげれば、回答No.3の後半で提示した方法を使うまでもなく処理を行う事が可能となる筈です。 只、CSVからコピーする度に、一々、手動日時のデータに戻すのも面倒な話ですので、回答No.3の >2.Sheet1の日時の書式 よりも下の所で提示した方法で各関数を組んでから、そのままCSVからコピーしたデータを放り込んだ方が手間が掛からない分、楽だと思います。 そうすれば、日時のデータに戻さずとも、そのまま処理を行う事が可能な筈です。 因みに、Sheet2のG列のデータが「印刷されない文字」を含んではおらず、単純に「'」が先頭付いていたり、書式が文字列の時に入力されたものであったりする事により文字列データ化しただけのものである場合で、尚且つ、その文字列データの状態で「yyyy/mm/dd hh:mm」の表示形式で表示したのと同じ形式の文字列となっていた場合には、作業列を1行で済ます方法もあるにはあったのですが、御質問の件では「yyyy/mm/dd hh:mm」ではなく「yyyy/mm/dd h:mm」(hが1つだけ)の形式となっている様ですし、また、文字列の途中に含まれている「スペース」(空白)の個数が、もしも0時~9時59分の場合と10時~12時59分の場合とでは異なっていた場合には、正しく処理出来なくなる恐れもありましたので、リスクを避けるために作業列を2列に分けております。
- kagakusuki
- ベストアンサー率51% (2610/5101)
>1.ログオフの項目が表示されない 何度も申し訳御座いません。その事に関しては >Sheet2のC5セルをコピーして、Sheet2のD5セルに貼り付けて下さい。 という箇所が間違っておりました。 Sheet2のC5セルに入力する関数が =IF(COUNTIF(Sheet2!$A:$A,$A5&"◆*?◇"&C$4&"◆"&C$3&"◇*?"),INDEX(Sheet1!$G:$G,MATCH($A5&"◆*?◇"&C$4&"◆"&C$3&"◇*?",Sheet2!$A:$A,0)),"") である事は間違いでは無かったのですが、Sheet2のD5セルに入力する関数は僅かに違っておりまして =IF(COUNTIF(Sheet3!$A:$A,$A5&"◆*?◇"&D$4&"◆"&C$3&"◇*?"),INDEX(Sheet1!$G:$G,MATCH($A5&"◆*?◇"&D$4&"◆"&C$3&"◇*?",Sheet3!$A:$A,0)),"") でした。 現在、Sheet2のD5セルに入力されている関数において参照先がD$3となっている箇所は、正しくはC$3を参照する様にしておかねばなりませんでした。 ですから、Sheet2のD5セルに上記の2つ目の関数を入力してから、Sheet2のC5セルと同じ書式設定を設定し て下さい。 そして、その後の >次に、Sheet2のC5セルをコピーして、Sheet2のD5セルに貼り付けて下さい。 という操作は行わずに、そのまた次の >次に、Sheet2の5行目をコピーして、6行目以下に貼り付けて下さい。 という操作に進んで下さい。 只、これでは質問者様以外の誰かが、Sheet2のC5セルの関数とD5セルの関数の違いに気づかずに、誤ってC5セルの関数をD列を含む「ログオフ」の下のセルに貼り付けて、D5セルの関数を消してしまう恐れもあるかも知れませんので、別の方法として、Sheet2のC5セルに入力する関数を次の様なものに変更するのも良いかも知れません。 =IF(COUNTIF(Sheet3!$A:$A,$A5&"◆*?◇"&C$4&"◆"&SUM(B$3:C$3)&"◇*?"),INDEX(Sheet1!$G:$G,MATCH($A5&"◆*?◇"&C$4&"◆"&SUM(B$3:C$3)&"◇*?",Sheet3!$A:$A,0)),"") これならば、B$3:C$3のセル範囲において日付や数値が入力されているのはC3セルだけですので、SUM(B$3:C$3)の部分が返す値はC3セルに入力されている日付を表すシリアル値となりますし、上記の関数をD5セルにコピー&ペーストした際にもSUM(C$3:D$3)となって、やはりC3セルに入力されている日付を表すシリアル値を返す事になります。(但し、現在は「表示名」という文字列データが入力されているB3セルに入力する値を別のものに変更する様な事があっても、数値データを入力しない事が前提です) >2.Sheet1の日時の書式 >ただ、別のCSVからSheet1にコピーした際には、ログイン名・表示名・ログオンも表示されなくなり、直接入力した日時セルを貼り付けると表示されます。 その場合、Sheet3のA列にはどの様な値が表示されているのでしょうか? もしかしますと、何も表示されなくなってはいないでしょうか? もし何も表示されなくなっていた場合には、そのCSVに入力されている日付は日付を表すシリアル値のデータではなく、例えば「改行を指示する制御文字」等の何らかの「印刷されない文字」を含んだ文字列データである可能性があります。(断言は出来ませんが) もしそのような文字列データだった場合には、セルの書式設定の表示形式を[標準]にしても、表示が数値ではなく日付のままとなる筈です。 それで解決方法ですが、Sheet3の作業列をもう1列増やし、まずSheet3のB2セルに次の関数を入力して下さい。 =IF(ISERROR(1/DAY(CLEAN(INDEX(Sheet1!$G:$G,ROW()))+0)),"",CLEAN(INDEX(Sheet1!$G:$G,ROW()))+0) 次に、Sheet3のA2セルの関数を次のものと差し替えて下さい。 =IF(OR(INDEX(Sheet1!$E:$E,ROW())="",$B2=""),"",INDEX(Sheet1!$E:$E,ROW())&"◆"&COUNTIFS(Sheet1!$E:$E,INDEX(Sheet1!$E:$E,ROW()),$B:$B,"<"&$B2)+COUNTIF(Sheet1!$E$2:INDEX(Sheet1!$E:$E,ROW()),INDEX(Sheet1!$E:$E,ROW()))&"◇"&IF(COUNTIFS(Sheet1!$E:$E,INDEX(Sheet1!$E:$E,ROW()),Sheet1!$K:$K,INDEX(Sheet1!$K:$K,ROW()),$B:$B,">="&INT($B2),$B:$B,"<"&INT($B2)+1,$B:$B,IF(INDEX(Sheet1!$K:$K,ROW())="ログイン",">","<")&$B2),"×",INDEX(Sheet1!$K:$K,ROW()))&"◆"&INT($B2)&"◇"&COUNTIF(A$1:A1,"*?◆1◇*?")+1) 次に、Sheet3のA2~B2のセル範囲をまとめてコピーして、同じ列の3行目以下に貼り付けて下さい。 次に、Sheet2のC5セルの関数を次のものと差し替えて下さい。 =IF(COUNTIF(Sheet3!$A:$A,$A5&"◆*?◇"&C$4&"◆"&SUM(B$3:C$3)&"◇*?"),INDEX(Sheet3!$B:$B,MATCH($A5&"◆*?◇"&C$4&"◆"&SUM(B$3:C$3)&"◇*?",Sheet3!$A:$A,0)),"") そして、Sheet2のC5セルをコピーして、Sheet2のD5~BL5のセル範囲に貼り付けて下さい。 次に、Sheet2の5行目をコピーして、6行目以下に貼り付けて下さい。
お礼
kagakusukiさん、返信ありがとうございます。 なんとお礼をいってよいかわかりません。 頂いた、内容でログオフの表示がうまくいきました。 日付については、ご指摘いただいたSheet3のA列には、表示されますが Sheet2には、反映されてないです。 Sheet1の日時を変更すると、Sheet2のログイン名や、表示名ごと行が消えてしまいます。 ただ、 >それで解決方法ですが、Sheet3の作業列をもう1列増やし、 >まずSheet3のB2セルに次の関数を入力して下さい。 以下に教えていただいた内容は、まだ試していませんので月曜日に状況を報告させて 頂きたいと思います。 いつも本当にありがとうございます。
- kagakusuki
- ベストアンサー率51% (2610/5101)
>ご返信頂いた通り、作成をこころみましたが「Sheet2」のログイン名や表示者は 0 で表示、ログイン・ログオフのセルは、 0:00 で表示されています。 申し訳御座いません、回答欄に書き込む際に何か操作ミスを犯したらしく、Sheet2に入力する関数の中で指定している参照先のシート名を一部間違えて、Sheet3とすべき所がSheet2になっておりました。 Sheet2のA5セルに入力する関数は =IF(ROWS($A$5:$A5)>COUNTIF(Sheet2!$A:$A,"*?◆1◇*?"),"",INDEX(Sheet1!$E:$E,MATCH("*?◆1◇*?◇"&ROWS($A$5:$A5),Sheet2!$A:$A,0))) ではなく =IF(ROWS($A$5:$A5)>COUNTIF(Sheet3!$A:$A,"*?◆1◇*?"),"",INDEX(Sheet1!$E:$E,MATCH("*?◆1◇*?◇"&ROWS($A$5:$A5),Sheet3!$A:$A,0))) でした。 同様に、Sheet2のC5セルに入力する関数は =IF(COUNTIF(Sheet2!$A:$A,$A5&"◆*?◇"&C$4&"◆"&C$3&"◇*?"),INDEX(Sheet1!$G:$G,MATCH($A5&"◆*?◇"&C$4&"◆"&C$3&"◇*?",Sheet2!$A:$A,0)),"") ではなく =IF(COUNTIF(Sheet3!$A:$A,$A5&"◆*?◇"&C$4&"◆"&C$3&"◇*?"),INDEX(Sheet1!$G:$G,MATCH($A5&"◆*?◇"&C$4&"◆"&C$3&"◇*?",Sheet3!$A:$A,0)),"") でした。 ですから、Sheet2の表全体を範囲選択した上で、Excelの置換機能([ホーム]タブ > 「編集」 グループの[検索と選択]ボタン > [置換]、或いはショートカットキーで[Ctrl]+[H])を使用して、 Sheet2! を Sheet3! に[すべて置換]して下さい。 後、Sheet3の関数を入力するセルの位置に関してですが > まず、Sheet3のA3セルに次の様な関数を入力して下さい。 > 次に、Sheet3のA3セルをコピーして、Sheet3のA4以下に貼り付けて下さい。 としていたのは、回答No.1に添付した画像のBookを作成した際に、Sheet1のA1セルに「Sheet1」と入力している都合で、データの入力欄が3行目から始まるようにした事に合わせていたためでして、もし、実際のSheet1のデータの入力欄が2行目から始まっている様な場合には、同じ関数をSheet3のA2に入力してから、Sheet3のA3以下に貼り付けて下さい。(但し、1行目のセルに入力する事だけには対応しておらず、1行目に入力するとエラーになります) 尚、この関数の場合は行数が変わっても修正が必要になる様な箇所はありません。 又、Sheet1のG列に数値(日付データを含む)が入力されていない行に、この関数を入力しましても空白を返す様になっておりますので、最初から2行目以下に入力しておいて、Sheet1のデータ入力欄が(2行目以下の)どこから始まっているのかという事を気にしないで使うというのも一つの手です。
お礼
ご回答いただいたのに返信できずに申し訳ありませんでした。 そして、丁寧な解説ありがとうございます。 早速、頂いた内容でシートを作成中です。
補足
kagakusukiさん、何度も本当に申し訳ありません。 頂いた内容で、かなり改善しましたがご迷惑でなければ、2点教えていただきたいです。 「ログイン名・表示名・ログオン」が表示できるようになりました。 1.ログオフの項目が表示されない C5(ログオン時間)をD5(ログオフ)に数式をコピーしたのですが、ログオフの時間が表示 されません。 D5の関数は、下のように表示されています。 =IF(COUNTIF(Sheet3!$A:$A,$A5&"◆*?◇"&D$4&"◆"&D$3&"◇*?"),INDEX(Sheet1!$G:$G,MATCH($A5&"◆*?◇"&D$4&"◆"&D$3&"◇*?",Sheet3!$A:$A,0)),"") 2.Sheet1の日時の書式 excelに直接、2015/03/06 11:00:00 と入力するとSheet2のログオンのセルに表示 できます。(ログイン名・表示名・ログオンが表示されます。) ただ、別のCSVからSheet1にコピーした際には、ログイン名・表示名・ログオンも表示されなく なり、直接入力した日時セルを貼り付けると表示されます。 セルの表示設定は、どちらも ユーザ定義の「yyyy/mm/dd h:mm」になっているので同じ ように見えます。 Sheet1の日時が反映されない理由がもし分かりましたら教えていただきたいです。 本当に何度も教えていただき申し訳ありませんが教えて頂けると助かります。 勉強不足で申し訳ありません。 よろしくお願い致します。
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、Sheet2のA1セルに西暦年を表す4桁の整数値を入力し、Sheet2のC1セルに月を表す1~12の内の何れかの整数値を入力すると、Sheet3のA列を作業列として使用して、Sheet2のA5以下にログイン名を、Sheet2のB5以下に表示名を、それぞれ重複や隙間無しに表示させ、Sheet2のC列~BL列の5行目以下にログインやログアウトした時刻を表示させるものとします。 まず、Sheet3のA3セルに次の様な関数を入力して下さい。 =IF(OR(INDEX(Sheet1!$E:$E,ROW())="",ISERROR(1/DAY(INDEX(Sheet1!$G:$G,ROW())))),"",INDEX(Sheet1!$E:$E,ROW())&"◆"&COUNTIFS(Sheet1!$E:$E,INDEX(Sheet1!$E:$E,ROW()),Sheet1!$G:$G,"<"&INDEX(Sheet1!$G:$G,ROW()))+COUNTIF(Sheet1!$E$2:INDEX(Sheet1!$E:$E,ROW()),INDEX(Sheet1!$E:$E,ROW()))&"◇"&IF(COUNTIFS(Sheet1!$E:$E,INDEX(Sheet1!$E:$E,ROW()),Sheet1!$K:$K,INDEX(Sheet1!$K:$K,ROW()),Sheet1!$G:$G,">="&INT(INDEX(Sheet1!$G:$G,ROW())),Sheet1!$G:$G,"<"&INT(INDEX(Sheet1!$G:$G,ROW()))+1,Sheet1!$G:$G,IF(INDEX(Sheet1!$K:$K,ROW())="ログイン",">","<")&INDEX(Sheet1!$G:$G,ROW())),"×",INDEX(Sheet1!$K:$K,ROW()))&"◆"&INT(INDEX(Sheet1!$G:$G,ROW()))&"◇"&COUNTIF(A$1:A2,"*?◆1◇*?")+1) 次に、Sheet3のA3セルをコピーして、Sheet3のA4以下に貼り付けて下さい。 次に、Sheet2のB1セルに「年」、D1セルに「月」、A3セルに「ログイン名」、B3セルに「表示名」とそれぞれ入力して下さい。 次に、Sheet2のC3セルに次の様な関数を入力して下さい。 =IF(ISNUMBER(($A$1&"/"&$C$1&"/"&ROUNDUP(COLUMNS($C:C)/2,0))+0),($A$1&"/"&$C$1&"/"&ROUNDUP(COLUMNS($C:C)/2,0))+0,"") 次に、Sheet2のC3セルとD3セルを結合して下さい。 次に、その結合したセルの書式設定の表示形式を、[ユーザー定義]の d"日" に設定して下さい。 次に、Sheet2のC4セルに次の様な関数を入力して下さい。 =IF(ISNUMBER(C$3),"ログイン","") 次に、Sheet2のD4セルに次の様な関数を入力して下さい。 =IF(ISNUMBER(C$3),"ログオフ","") 次に、Sheet2のA5セルに次の様な関数を入力して下さい。 =IF(ROWS($A$5:$A5)>COUNTIF(Sheet2!$A:$A,"*?◆1◇*?"),"",INDEX(Sheet1!$E:$E,MATCH("*?◆1◇*?◇"&ROWS($A$5:$A5),Sheet2!$A:$A,0))) 次に、Sheet2のB5セルに次の様な関数を入力して下さい。 =IF(ISERROR(1/(VLOOKUP($A5,Sheet1!$E:$F,2,FALSE)<>"")),"",VLOOKUP($A5,Sheet1!$E:$F,2,FALSE)) 次に、Sheet2のC5セルに次の様な関数を入力して下さい。 =IF(COUNTIF(Sheet2!$A:$A,$A5&"◆*?◇"&C$4&"◆"&C$3&"◇*?"),INDEX(Sheet1!$G:$G,MATCH($A5&"◆*?◇"&C$4&"◆"&C$3&"◇*?",Sheet2!$A:$A,0)),"") 次に、Sheet2のC5セルの書式設定の表示形式を、[日付]の 13:30 か或いは[ユーザー定義]の h:mm;@ に設定して下さい。 次に、Sheet2のC5セルをコピーして、Sheet2のD5セルに貼り付けて下さい。 次に、Sheet2のC3~D5のセル範囲をまとめてコピーして、Sheet2のE3~BL5のセル範囲に貼り付けて下さい。 次に、Sheet2の5行目をコピーして、6行目以下に貼り付けて下さい。 以上で準備は完了で、後はSheet2のA1セルに西暦年を表す4桁の整数値を入力し、Sheet2のC1セルに月を表す1~12の内の何れかの整数値を入力しますと、人別・日別に集計されたデータが表示されます。
お礼
大変丁寧に教えて頂き、ありがとうございます。 早速、教えて頂いた内容を試してみます。
補足
kagakusukiさん、先ほどはありがとうございました。 ご返信頂いた通り、作成をこころみましたが「Sheet2」のログイン名や表示者は 0 で表示、ログイン・ログオフのセルは、 0:00 で表示されています。 1日~31日までの日付と「ログイン」「ログオフ」の表示は、正しく表示されています。 「Sheet3」については、頂いたファイル通りA3セルからAセルの下まで表示されています。 7849-t01◆5◇ログオフ◆42062◇1 7411-Mgr◆51◇ログオフ◆42062◇1 7411-Mgr◆51◇ログオン◆42062◇1 7411-Mgr◆51◇ログオフ◆42060◇1 7411-Mgr◆51◇ログオン◆42060◇1 7871-t02◆2◇ログオフ◆42062◇1 「Sheet1」のログイン名や・表示名の書式は「標準」で、日時はユーザ定義の「yyyy/m/d h:mm」になっています。 大変恐れ入りますが、どこか私の入力間違いがありそうな箇所があれば教えてい頂きたい です。 ご迷惑をおかけして申し訳ありませんが、よろしくお願い致します。
補足
kagakusukiさん、いつもありがとうございます。 報告が遅くなり、申し訳ありません。 実は、指導いただいた内容を試しているのですが、まだうまくいっていません。 お恥ずかしい限りです。 どのようなパターンの時に、ログイン名・表示名・ログオンとオフの時間が表示されたり されなかったりするのかいろいろ試しています。 ご指導頂いた内容では、作業列を2列にするの直前まで完了しています。 作業列を2列にした場合、ログオフ時間が表示されなくなってしまったので、いったん その手前まで戻させていただきました。 ただ、今はなんともいえないのですが、 一度Sheet2に表示された、ログイン名・表示名であれば、Sheet1の同じログイン名・表示名 をコピーする事で、その日以降のログイン・ログオフ時間が表示できることがわかりました。 (日時は、CSVからのコピー・Sheet1への貼付けでも表示されます。) なんとなくですが、Sheet2にログイン名・表示名が表示されるか・されないかがキーでは ないかと思い試行錯誤中です。 (ただ、Sheet2には表示されていない内容は、Sheet3には表示されています。) そしてもう一つ分かった事は、 Sheet2に表示されているにログイン・ログオフ時間は、Sheet1のログイン・ログオフ時間 をコピーして別のログイン名・表示名の後ろに貼り付ければ、Sheet2に反映される事です。 本当にいつもご回答いただきありがとうございます。