プロが教える店舗&オフィスのセキュリティ対策術

○○はいつ欠席・遅刻・早退しているか?が管理できるエクセル一覧表の作成

「出欠一覧」シートにはC2からGT2まで日にちが三桁(8月10日なら“810”)で入っています。A列には出席番号、B列には名前、C3:GT43には出席状況がすでに7月分まで入っています(もちろんこれから3月末まで記入します)。そこには1,2,3,4,5,6か空欄が入っています。それぞれの意味は「1」欠席「2」遅刻「3」早退「4」忌引き・入病「5」公欠「6」遅刻してきて早退「」は出席、です。
「欠席した日はいつ」シートでは出席番号を入れると「名前」と「いつ欠席遅刻早退忌引き公欠遅刻したか」がわかる。という物を作りたいと思います。「欠席日はいつ」シートはまだ全く作っておりません。
是非とも関数かマクロをおおしえください。

補足 GU1:GY44には集計の数字が入っております。44行から47行にも集計が入っております。

A 回答 (2件)

#1です。

#1で述べたimogasi方式の例を挙げてみます。
例データ (注)1は欠席した日のセルにコードを入れたもの。
1はずれて表示されるが、適当な列に1を入れてテストすること。
ーー2009/7/12009/7/22009/7/32009/7/42009/7/52009/7/62009/7/72009/7/82009/7/9
111吉田
112木村111(注)
113鈴木
114近藤111(注)
115田中
B11に近藤 目的の生徒名
B13に=B11
C13に
=IF(INDEX($A$1:$K$10,MATCH($B$13,$B$1:$B$10,0),COLUMN())=1,MAX($A$13:B13)+1,"")
と入れて式を右方向に複写。
結果第13行(該当列に連番を振ったことになる)
近藤123
B11に
=INDEX($C$1:$K$13,1,MATCH(COLUMN()-2,$C$13:$K$13,0))
右方向に式を複写。
結果
近藤2009/7/12009/7/42009/7/5#N/A
C11以右のセルには、書式を日付にする。
近藤を吉田に変えると瞬時に吉田データ分に変わる。
ーーー
課題(例を簡単にするための手抜きした点)
K列までをもっと右列まで伸ばす。日付を増やす。
欠席のコードと1つしか扱ってないが、他のコードも指定して該当日を抜き出す。例えばA11に1や2や3を指定する。
式を複写すると、#N/Aが出るが出ない(見えない)ようにする。
その式はGoogleのimogasi方式を読んでください。
    • good
    • 0

関数では同じ行や、同じ列中に複数個同じ値が(出現する)あるセルを全て摘出することは難しい。


(1)一人分だけなら、Googleで「imogasi方式」で照会してもらえれば、抜き出し問題の回答例が多数出てくる。
しかし本質問は次の生徒で次々行が詰まっているので難しい。
(2)・・・かマクロをおおしえください。
このコーナーは、課題だけ書いて、回答者にコードを書いてくれというのは、遠慮願うことになっている。
質問の書きぶりから、VBAの勉強もまだのようだ。
検索操作をしてマクロの記録をとると、そのセルに欠席コードが有る課などはわかる。そこから、第1行にある日付を取り、一覧表化しないといけない。Findメソッドはやや難しく、上記はVBA中級の力が無いと
出来ない。マクロの記録とやりたいことの間を結ぶ思考を整理して、どこが行き詰まったか、判ってから質問すべきだ。
あるいはその行のセル全部を、欠席コードかどうか調べて、欠席コードなら日付を書き出すのが初心者向きだが。
    • good
    • 0
この回答へのお礼

大変ありがたいアドバイス感謝しております。残念ながら他で教えてくださる方がおりまして、見事に解決できました。感謝に堪えません。ありがたかったです。

お礼日時:2009/07/31 17:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!