A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
これはシートでデータの並べ替えをしてよければ関数でもできます。
前提は以下の通りです
・1行目はタイトル行で2行目から技術者のデータが入力されている
・G列、H列は空いている(ここに重複期間をさせるため)
(1)シートをA列の氏名を第一キー、E列の開始日を第二キーで昇順に並べ替えます
(2)G3セル(実データの2行目)に以下の式を入れます
=IF(A3=A2,IF(E3<=F2,E3,""),"")
(3)H3セルに次の式を入れます
=IF(G3<>"",MIN(F3,F2),"")
(4)G3セルと、H3セルを下方向にコピーします
するとG,H列に重複期間が表示されます。
もしシートの並び替えが許されないならマクロで可能です。
以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はシートに戻りALT+F8でマクロ一覧を開き、マクロ名(Macro)を選択して「実行」ボタンです。
Sub Macro()
Dim LastR, idx As Long
ActiveSheet.Copy after:=ActiveSheet
LastR = Range("A65536").End(xlUp).Row
Columns("A").Insert Shift:=xlToRight
Range("A2").Value = 1
Range("A3").Value = 2
Range("A2:A3").AutoFill Destination:=Range("A2:A" & LastR)
Range("A1:G" & LastR).Sort Key1:=Range("B2"), Order1:=xlAscending, _
Key2:=Range("F2"), Order2:=xlAscending, Header:=xlYes
For idx = 3 To LastR
If Cells(idx, "B").Value = Cells(idx - 1, "B").Value Then
If Cells(idx, "F").Value <= Cells(idx - 1, "G").Value Then
Cells(idx, "H").Value = Cells(idx, "F").Value
Cells(idx, "I").Value = Application.Min(Cells(idx, "G"), Cells(idx - 1, "G"))
Cells(idx, "I").NumberFormatLocal = "yyyy/m/d"
End If
End If
Next idx
Columns("H:I").AutoFit
Range("A1:I" & LastR).Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes
Columns("A").Delete
End Sub
(このマクロは元のシートには手をつけず、別シートにデータをコピーしてから実行するようにしました)
早速のご回答誠に有難う御座います。初心者にとって回答内容を理解するのに大分時間が必要と痛感しております。取りあえず近くの図書館に行きエクセル専門書と格闘する覚悟であります。なんとか重複チェックが、ものになるよう頑張ります。貴重なご助言本当に感謝しております。
No.1
- 回答日時:
質問文の内容では回答のしようがありませんので補足お願いします
>特定技術者を抽出し
抽出とはどのような操作を行うのですか? 特定の人をマウスで選択するのですか? それとも配置期間等から自動で抽出するのですか?
>その者の重複期間をチェック、表示させたいのです
何と何の重複をチェックするのでしょう? また何を表示するのですか?
またシート上で各項目はどのような配置ですか。A列は氏名、B列は開始日で日付形式で2007/2/1のように値が入る。 等と具体的に補足いただければ回答がしやすいです。またそのほうがご期待に沿う回答が得られると思います
この回答への補足
早速のご検討有難う御座います。抽出はエクセルのデータ、オートフィルターで技術者全員が表示されるので、そこから特定の技術者名をクリック、その者の一覧表が表示されます。重複チェックは期間のダブりを検索、表示したいのです。例えば山田技術者はA工事で3月1日から3月31日まで従事、同じくB工事で3月25日から4月30日まで従事予定。この場合の3月25日から3月31日間がダブり従事となります。これを何らかの方法で表示できませんか。リストは一般的にA列番号、B列客先名、C列工事名、D列配置技術者名、E列配置開始日(例2007/03/01)、F列配置終了日(例2007/03/31)です。宜しくお願い致します。
補足日時:2007/03/01 17:26お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- その他(Microsoft Office) 【スプレッドシート】最初の契約日と最後の契約期間を抽出したい 添付のように派遣先、スタッフ、契約開始 2 2023/03/13 21:18
- Excel(エクセル) エクセルで重複データを行ごとに抽出したい 4 2022/12/05 08:18
- Excel(エクセル) ある範囲のセルに何を入力すると、別のセルに○を表示させる 3 2022/04/05 15:51
- その他(プログラミング・Web制作) ワードプレスのプラグインであるAddQuicktagを使いたいが… 3 2022/04/18 15:03
- Excel(エクセル) ExcelのVBAコードについて教えてください。 1 2023/01/13 10:42
- 政治 日本も、中国のように顔認証を使って個人情報を特定できれば、犯人はすぐに捕まえられますよね? 5 2023/01/02 21:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
Microsoft1Officeの互換ソフト...
-
Excel ピボットテーブルで日付...
-
エクセル関数を教えてください
-
【マクロ】その時、その時で変...
-
【マクロ】読取専用のファイル...
-
LOOKUP関数を使えばいいのでし...
-
エクセル 白黒印刷で白線を印刷...
-
【関数】先頭だけにある、半角...
-
【関数】適切な文字数の数字を...
-
Excelのチェックボックスの使い...
-
エクセルでの作業計算方法について
-
Excelのpivotについて質問です
-
WPS OFFICEでの縦書きについて
-
時間によってファイル名が変わ...
-
エクセルのセルに同じ大きさの...
-
Aというブックの1というシート...
-
エクセルの順位別一覧表の自動...
-
西暦や和暦の表示をyyyymmdd表...
-
【マクロ】エクセルにかいてあ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数セル範囲をコピ...
-
AccessからExcelへ
-
従事期間の重複チェック、表示
-
エクセルにて表に入力→一覧に自...
-
エクセル 細かい条件での切り...
-
エクセルの行列方向での並び替え
-
エクセルでのデータ蓄積
-
エクセルで空白の項目セルを削...
-
テキストファイルのデータをエ...
-
Google form グーグルフォーム...
-
「ドゥ」の簡単なローマ字入力方法
-
1MBでドレくらいの文章を書くこ...
-
一太郎をワードに変換
-
エクセルの表を選択し、「画像...
-
一太郎で作った文書をWord変換
-
googleカレンダーの予定を入力...
-
エクセルでセル未入力時の初期...
-
一太郎で作成した文書をコピペ...
-
PDF 入力途中で改行したい
-
テキストファイルで改行に置換...
おすすめ情報