高齢者施設の利用者さん31名の体調管理で、
医療スタッフと介護スタッフのやり取りを
日報と言う形で時系列に記録しているのですが(写真の記入原本)、
これを利用者さん別シートに内容を自動で転記したいと考えています。
別シートはタブの名称を利用者さんの名前にして31枚作っています。
6列使用しており、1行目は空欄でA2(A2とB2を結合)欄に名前を入れてあります。
※名前は全て写真の記入原本のE列と同じ表記です。
A3~D3は写真原本と全く同じ内容、E3は写真原本のF3の内容、F3には記入者と書いてあります。
※F列の記入者は全て手打ちで入力する予定です。
記入原本の4列目を入力したらE4にあるCさんの名前を認識して、
Cさんの別シートのA4~D4に写真原本のA4~D4がそのまま転記され、
Cさんの別シートのE4には写真原本のF4がそのまま転記されるという
状態にしたいと思っています。
他にこのようにしたいというのは下記の通りです。
①記入原本は記入できる行を42行作ってありますが、
全部記入し終わらなくても、途中で消してまた記入していきたいと思っています。
②記入原本に複数回出てくる入居者さんは、
出てくるたびにその入居者さん別シートの空欄にデータを転記したいです。
(前に転記された情報が上書きされて消されない様にしたいという意味です)
③入居者さん別シートも42行記入できるようになっていますが、
ほぼデータで埋まったら、また転記できるように消したいと考えています。
ここまで考えると私の知っている数式や関数では複雑すぎて対応できません。
なんとかシートを作りたいのでご存じの方、教えて頂ければ幸いです。
No.5ベストアンサー
- 回答日時:
No4です。
以下のマクロを標準モジュールへ登録してください。使用時の条件は、No4に述べたとおりです。
文字数が多く、直接書き込めないので、下記URLに書きました。
http://climbi.com/b/8263/0
No.4
- 回答日時:
o2です。
>途中で記入原本を消した時には、
>個人別シートが消えない様にしたいです。
ということであれば、マクロで実装するしか方法はないと思います。
以下の仕様で問題なければ、マクロを提供します。
1.記入原本は途中で、消されることもあるので、コピーする行の範囲を選択させ、その範囲を
コピーする。選択範囲は、4~6行を選択する場合は、A4:E6の範囲を矩形(くけい)で選択する。
(左側がA列、右側がE列)
選択範囲の中に1つでも空白のセルがある場合は、エラーとする。(コピーできない)
尚、4行から45行がデータ行なのでその範囲以外を選択した場合もエラーとする。
2.コピー先のシート(利用者毎のシート)は、4行から45行をデータ行とする。
このシートは4行から45行をサイクリックに使用することを前提とし、
人間がこのデータを消すことは原則行わない。
コピー先の行の決定は、4行から下に空き行を検索し、空いている行とする。
又、行へ1行コピーしたのち、次回のコピーに備え、その下の行を空白行に設定しておく。
(45行へコピーしたときは、4行へ空白行を設定する)
3.人間がコピー対象の行を選択しコピーするという性質上、コピー行の漏れ又は重複(同じ行を2回コピー)
の可能性がある。コピーの漏れは、本人の注意以外にガードの方法がない為、マクロではチェックしない。
コピーの重複は、選択された行と同じ内容がコピー先にあれば、重複ありとして、その行のコピーをスキップする。
記入原本の選択行のA,B,C,D列がコピー先の行のA,B,C,D列に全て一致し、且つ
記入原本の選択行のF列がコピー先の行のE列に一致した場合、重複行と判定する。
(この重複行チェックは、行わないようにすることも可能です。その場合、その旨、回答ください)
尚、ある行をコピーし、コピー後に、記入原本のその行を一部変更した場合は、
その後、重複行のチェックを行った時、その行は重複行とならない為、コピーすることができてしまう故、注意が必要である。
上記の仕様で良ければマクロを提供しますので、その旨回答ください。
又、上記の仕様の修正の希望、上記以外の仕様の追加等もあれば、回答ください。
(仕様の修正、追加は可能な限り受けますが、実現できるかどうかは内容によります)
No.3
- 回答日時:
[No.1お礼]へのコメント、
》 添付写真の通りに表を作って試してみても うまく行か
》 なくて…
私が「“配列”数式を入力」とか「変更後の式も配列数式にする」とか書いていることを、理解して実行しましたか?此れ、必須なんですゥ~。
》 なぜA列12行目までの範囲指定があるのか
Sheet1 には9行目までしかデータが無いのにワンカンナ~イ、というわけですね?
「12行目」にしていたのは、「9行目以上」という意味ですよ。だって実際は少なくとも1ヶ月とか1年分とか必要になるのかなと、気を利かしたつもりです。その場合は、「12行目」どころか、「40行目とか「400行目」にしなきゃナンナイですけどね。
MSじゃないけど、“小さな親切、大きなお世話”になっていたらスンマセ~ン。
》 5行目以降もオートフィルで関数を入れていくのか
Sheet1 のデータに 2016/10/6以降の分が足されても対応させるため。
No.2
- 回答日時:
もし、利用者別にデータをみたいということなら、フィルターを利用者の列にかければ、ある利用者の情報のみ
を表示することは可能です。それで良いなら、利用者毎のシートは不要になります。
一点、確認したいのは、
>①記入原本は記入できる行を42行作ってありますが、
> 全部記入し終わらなくても、途中で消してまた記入していきたいと思っています。
ということですが、途中で記入原本を消したとき、各利用者のシートの内容も同じように消えて良いかということです。
消えてよいなら、No1の方のやりかたで良いと思いますが、消えてほしくないなら、excel関数のみでは対応できない為、
マクロを作成し、それを呼び出すことが必要になります。
言い換えれば、記入原本に書いた内容が自動的に各利用者のシートに反映されるようにするのではなく、
記入原本に記入したのち、マクロをその人が実行し、各利用者のシートにコピーすることになります。
そうすれば、記入原本を消しても、各利用者のシートのデータは消えません。
ありがとうございます。
途中で記入原本を消した時には、
個人別シートが消えない様にしたいです。
関数で手間取っているので
マクロはなかなか手ごわそうですね(^^;
No.1
- 回答日時:
添付図参照
1.最初にこのブックに[名前を付けて保存]しておく
2.Sheet1 を貴方が言うところの「記入原本」。
3.別シート3枚にそれぞれ Chris、Dick、Emma というシー
 ̄ ̄ト名を付ける。
4.当該3枚のシートを同時に選択して、此れ等を作業グルー
 ̄ ̄プとしておく。
以下は作業グループにおける操作です。
5.セル A2 に次式を入力
 ̄ ̄ =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,99)
6.セル A4 に次の“配列”数式を入力
 ̄ ̄ =IFERROR(INDEX(Sheet1!A$1:A$12,SMALL(IF(Sheet1!$E$4:$E$12=$A$2,ROW($H$4:$H$12),""),ROW(A1))),"")
7.セル A4 を右4列にオートフィル
8.セル E5 の式を次のように変更
 ̄ ̄ =IFERROR(INDEX(Sheet1!E$1:E$12,SMALL(IF(Sheet1!$E$4:$E$12=$A$2,ROW($H$4:$H$12),""),ROW(E1))),"")
 ̄ ̄ ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄ ↓↓↓
 ̄ ̄ =IFERROR(INDEX(Sheet1!F$1:F$12,SMALL(IF(Sheet1!$E$4:$E$12=$A$2,ROW($H$4:$H$12),""),ROW(E1))),"")
 ̄ ̄つまり、単に「E$1:E$12」⇒「F$1:F$12」の変更!
 ̄ ̄ただし、変更後の式も配列数式にすることを忘れずに!
 ̄ ̄それから、列A、Bの書式をそれぞれ日付形式、時刻形式
 ̄ ̄にすることを忘れてはなりませぬ
【独白】比較的簡単と思うンだけど・・・
お返事が遅くなりまして申し訳ありません。
頂いた関数でやってみたのですが、うまく行かなくて、
回答者様の添付写真の通りに表を作って試してみても
うまく行かなくて手間取っています。
頂いた関数に
なぜA列12行目までの範囲指定があるのかや、
H列の範囲指定が出てくるのか、
5行目以降もオートフィルで関数を入れていくのか
などいろいろと悩んでいます。
もう少しやってみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Excel(エクセル) Excelで、別シートの表のステータスに伴った動的な自動転記をしたいです。 2 2023/06/14 15:56
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Visual Basic(VBA) VBAで、シート間の転記するコードをFOR~NEXTで教えてください。 9 2023/04/30 20:04
- Excel(エクセル) エクセルのイベントVBAを複数のシートで動かしたい 1 2022/12/07 16:55
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Excel(エクセル) excelにおける転記マクロの書き方 2 2023/05/12 03:16
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Visual Basic(VBA) vbaについて 主に以下のような設定をしたいです。 Aブックの表の行数が20未満だったら Bブックの 1 2023/06/08 23:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 関数を使ってデータと一...
-
EXCELのVBAでシートコピーをし...
-
エクセルの選択範囲以外を削除...
-
【Excel VBA】シートコピー時、...
-
【Excel】数式をそのまま他のシ...
-
EXCELで別のブックから式をコピ...
-
Excel シートのコピーの際、ペ...
-
エクセルの1シートの内容を複...
-
エクセルのワークシートをUSBメ...
-
EXCEL VBA シートをコピーする...
-
VBAでエラーメッセージが出ない...
-
エクセルシートを別のエクセル...
-
エクセルでシートを「移動また...
-
シートが保護されていないのに...
-
Excel シートに別のExcelシート...
-
Excel 数式の保護をしたセルを...
-
【エクセル】プルダウン設定の...
-
エクセルVBA 1行飛ばしで転記す...
-
標準モジュール、フォームを別...
-
シートをたくさんコピーするに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの選択範囲以外を削除...
-
Excel 関数を使ってデータと一...
-
EXCELのVBAでシートコピーをし...
-
【Excel】数式をそのまま他のシ...
-
エクセルの1シートの内容を複...
-
【VBA】コピー&複数個所のペー...
-
EXCELで別のブックから式をコピ...
-
【エクセル】プルダウン設定の...
-
Excel シートのコピーの際、ペ...
-
エクセルVBA 1行飛ばしで転記す...
-
Excel 数式の保護をしたセルを...
-
Excelの行をコピーして貼り付け...
-
エクセルのワークシートをUSBメ...
-
シートが保護されていないのに...
-
エクセルシートを別のエクセル...
-
VBA シートをコピー後、ボタン...
-
【Excel VBA】シートコピー時、...
-
Excel シートに別のExcelシート...
-
【スプレッドシートで】xlsx形...
-
PDFファイルをコピーしてエクセ...
おすすめ情報