既出かもしれませんが質問です。Accessでやると簡単なのでしょうが、Excelの関数のみで行えますか?
具体的には、sheet1、2、3のデータを使用して、
(1)sheet3でリンクさせて表示(使用するのはsheet1、2のみ)
(2)かつsheet3で並べ替えて表示(使用するのはsheet1、2、3)
となりますが、とりあえず(1)だけでも早急にできるようにしたいと思っています。
【sheet1】(データベース2:A列=検索被対象コード、B列=氏名、C列=社員コード(各行はB列=C列です))
A列 B列 C列
1912 A子 123
1912 B子 1234
1912 C子 2345
2001 C子 2345
2001 D子 34567
2001 A子 123
【sheet2】(データベース2:A列=社員コード、B列=氏名、C列=地域コード(各行はA列=B列=C列です。))
A列 B列 C列
123 A子 3
1234 B子 1
2345 C子 2
2345 C子 2
34567 D子 4
123 A子 3
【sheet3】(表示用:A1=検索対象コード、A3以下=sheet1A列の中から対象となるC列の情報を、(可能であればsheet2C列の地域コード順に)表示させたい)
A列 B列
2001(sheet1A列の検索対象コード:手入力により可変とする。)
2345(sheet1C列のC子の社員コード(sheet2C列の地域コード2))
123(sheet1C列のA子の社員コード(sheet2C列の地域コード3))
34567(sheet1C列のD子の社員コード(sheet2C列の地域コード4))
No.2ベストアンサー
- 回答日時:
質問文が長くて、質問の真意をつかめているかどうか判らないが、下記のようなことかな。
質問の書き方を下記で勉強して。ーー
例データ Sheet1 A列からF列(見出しは直接書くべき)
検索コード氏名社員番号氏名地域コード作業コード
1912A子123A子3
1912B子1234B子1
1912C子2345C子2
2001C子2345C子21
2001D子34567D子42
2001A子123A子33
ーーー
Sheet1にSheet2のデータを社員コードで集約している。
D2の式 =VLOOKUP(C2,Sheet2!$A$1:$C$100,2,FALSE)
下方向に式を複写
E2の式 =VLOOKUP(C2,Sheet2!$A$1:$C$100,3,FALSE)
下方向に式を複写
F列は作業列で、検索に該当する連番を振っている。
F2の式 =IF(A2=Sheet3!$A$1,MAX($F$1:F1)+1,"")
下方向に式を複写。
結果
検索コードが2001の場合上記F列。
ーーー
Sheet2
社員コード氏名地域コード
123A子3
1234B子1
2345C子2
2345C子2
34567D子4
123A子3
データのまま
ーーー
Sheet3 のA1 に2001(一例で変えてよい)
第2行 検索コード氏名社員番号氏名地域コード作業コード
第3行以下
A3 =INDEX(Sheet1!$A$1:$F$100,MATCH(ROW()-2,Sheet1!$F$1:$F$100,0),COLUMN())
B3からE3はA3の式を複写。
A3:E3の式を下方向に式を複写。
要らない項目があればCOLUMN()のところを1,2,3、など具体的に
Aheet1の列と合わせて指定。
結果
2001
検索コード氏名社員番号氏名地域コード作業コード
2001C子2345C子2
2001D子34567D子4
2001A子123A子3
#N/A
#/Aの防止は
IF文でRow()-2がSheet1のF列のMAXを超えていると空白という式をかぶせて出来る。
以上「imogasi方式」と自称。
ーー
質問の書き方
質問文の
(1)>早急にできるようにしたいと思っています。
までは不要。
(2)A列=検索被対象コード、B列=氏名、C列=社員コード(各行はB列=C列です
は具体例の列の上に書く方が判りやすい。画面でのづれはあるかもしれないが。
(3)「データベース2」の意味不明
(4)Sheet3
2001の場合
2001C子2345C子2
2001D子34567D子4
2001A子123A子3
と出てほしいと書けば判りやすい。
D列はあえて重複そのままとしているが良くないかな?。
ご回答と質問の仕方を教えてくださいまして、ありがとうございます。
質問の記載ミスも多々あり、お恥ずかしい限りです。
出力はイメージ通りにできました。関数も勉強させていただきます。
どうもありがとうございました。
No.1
- 回答日時:
>可能であればsheet2C列の地域コード順に
これがあれば VBAを使う事になると思います。
例えば Seet1に
A列 B列 C列 D列
1 1912
2
3 検索 氏名 社員ID 地域ID
4 1912 A子 123
5 1912 B子 1234
6 1912 C子 2345
7 2001 C子 2345
5 2001 D子 34567
と Sheet1に3行ほど追加して
D4は =VLOOKUP(C4,Sheet2!A:C,3,FALSE) 下フィル
シート名のタブを右クリックして コードの表示で VBエディターを起動
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Range("A3:D1000").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=Range("A1").Value
Selection.Sort Key1:=Range("D4"), Order1:=xlAscending, Header:=xlGuess
End If
End Sub
をコピイして 閉じる
A1に1912とか2001を入れてみてください。
この回答への補足
早速のご回答ありがとうございます。
基本的な関数しか分からない状況で、理解するのが難しいですが、オートフィルターの形で自動的に抽出されました。
実は、これ以外にも縦横の分析が必要なデータのため(実は他にもsheetがある)、表示用のsheet3以外は、データベースとしてデータを蓄積していきますので、現時点ではsheet1と2の情報をリンクさせて、sheet3に入力したキーで社員コードを出力できるようにしたいのです。
教えていただいたVBAを実行してみて、検索対象コードから社員コードさえ抽出できれば、表示用のsheet3に地域コードをリンクさせてオートフィルタでもかまわないと思いました。
読みにくい上に、記載ミスのある質問にお答えいただきまして、ありがとうございました。
こういう方法もあるんだと大変参考になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) VBA 別sheetからの転記なのですが 2 2023/05/22 15:55
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) VBAでvlookup関数から、別シート参照するやり方・・・ 2 2022/11/14 18:49
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- Visual Basic(VBA) VBAで列の再表示設定 1 2023/04/25 10:19
- その他(プログラミング・Web制作) URLのリンク切れをマクロを使って表示する方法を教えてください。 1 2022/09/21 20:32
- Excel(エクセル) エクセルでのコピーペースト 6 2022/09/03 07:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別シートからの文字を変更
-
エクセルの行の抽出について質...
-
Excel 2019 のピボットテーブル...
-
Excelのセルを飛ばして入力する
-
【マクロ】エクセルにかいてあ...
-
Excelのオートフィル
-
Excel初心者です。 詳しい方、...
-
スプレッドシート クエリ関数 1...
-
MOS365 Excel Expert / Excel R...
-
西暦や和暦の表示をyyyymmdd表...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセルの数式で教えてください。
-
スプレッドシートの関数VLOOKUP...
-
エクセルでセルに「氏名を入力...
-
エクセルで指定した日付、店舗...
-
【Excel】セル内の時間帯が特定...
-
Excelのグラフ軸について
-
Excel 2019 は、SPILL機能があ...
-
関数を教えて下さい。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報