windows7
Excel2010 です。
ファイル名:物件データ一覧
ワークシート名:物件一覧
に
A B C
1 担当者 物件名 納入品名
2 鈴木 一郎 ABC商事 いろは
3 鈴木 一郎 ZZZ商会A にほへ
4 鈴木 一郎 BB商事 にほへ
5
というようなデータが保存されており、
ファイル名:明細書作成
ワークシート名:3月分
という別ファイルで作業を行います。
A1セルにAと入力(全角半角は区別しない)すると
B1セルにドロップダウンリストでABC商事とZZZ商会Aが表示され、
ABC商事を選択すると
C1セルにいろはが自動で表示されるようにしたいのです。
どなたか教えていただけませんでしょうか?
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
>A1セルにAと入力(全角半角は区別しない)すると
>B1セルにドロップダウンリストでABC商事とZZZ商会Aが表示され、
作業用の列を使ってデータの入力規則用テーブルを作成すれば可能かと思います。
>ABC商事を選択すると
>C1セルにいろはが自動で表示されるようにしたいのです。
B1セルの値を使って物件一覧シートのB列とC列からVLOOKUP関数でピックアップできるはずです。
其々の数式は以下のようにされると良いでしょう。
明細書作成の3月分シートに作成する入力規則テーブル用数式
=IFERROR(INDEX(物件一覧!B$1:B$400,SMALL(NOT(ISERROR(FIND(ASC(B$1),ASC(物件一覧!B$1:B$400))))*ROW(B$1:B$400)+(ISERROR(FIND(ASC(B$1),ASC(物件一覧!B$1:B$400))))*1000,ROW())),"")
この式は配列値を扱いますので数式バーに入力後、Ctrl+Shift+Enterで確定してください。
必要数を下へオートフィルでコピーします。
C列には次の式で良いでしょう。
=IF(B1="","",VLOOKUP(B1,物件一覧!B$1:C$400,2,FALSE))
必要数を下へオートフィルでコピーします。
当方ではデータの最大行を400としましたので必要に応じて最大行を変更してください。
まず、お礼が大変遅くなりましたことお詫び申し上げます。
ぜひ、こちらの方法で挑戦したいと思います。
ご回答ありがとうございました。
No.2
- 回答日時:
こんばんは!
一例です。
VBAで「物件データ一覧」ファイルの「3月分」Sheetにオートフィルタをかけ
「明細書作成」ファイルの「Sheet2」に表示させ、それを入力規則の「リスト」の元のデータとしています。
すなわち、「明細書作成」BookのSheet2は使っていない状態にしておいてください。
まず、「明細書作成」Bookを開き Alt+F11キー → メニュー → 挿入 → 標準モジュール
→ VBE画面(カーソルが点滅しているところ)に↓のコードをコピー&ペーストしてみてください。
Sub 抽出() 'この行から
Dim wB As Workbook, wS As Worksheet, wS1 As Worksheet, wS2 As Worksheet
Dim myPath As String, fName As String
Dim lastRow As Long, myFlg As Boolean
myPath = "C:\Users\「PC名」\Documents\「フォルダ名」\")
'詳しくは保存場所のExcelファイルのアイコン上で右クリック → プロパティで確認
fName = "物件データ一覧.xlsx"
For Each wB In Workbooks
If wB.Name = fName Then
myFlg = True
End If
Next wB
If myFlg = False Then
Set wB = Workbooks.Open(myPath & fName)
Else
Set wB = Workbooks(fName)
End If
Set wS = wB.Worksheets("3月分")
Set wS1 = ActiveSheet
Set wS2 = Worksheets("Sheet2")
With wS
.Range("A1").AutoFilter field:=2, Criteria1:="*" & StrConv(Range("A1"), vbNarrow) & "*", _
Operator:=xlOr, Criteria2:="*" & StrConv(Range("A1"), vbWide) & "*"
End With
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
With wS2
.Range("A:A").ClearContents
If lastRow > 2 Then
Range(wS.Cells(2, "B"), wS.Cells(lastRow, "B")).SpecialCells(xlCellTypeVisible).Copy wS2.Range("A1")
End If
End With
wS1.Select
wS.AutoFilterMode = False
End Sub 'この行まで
次に「明細書作成」Bookの画面左下にあるSheet見出しの「3月分」上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペースト → Excel画面に戻ってください。
Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
If Target.Address = "$A$1" Then
Range("B1").ClearContents
Call 抽出
End If
End Sub 'この行まで
最後の「3月分」SheetのB1セルを選択 → データ → データの入力規則 → リスト → 元の値の欄に
=OFFSET(Sheet2!A1,0,,COUNTA(Sheet2!A:A))
という数式を入れOK
これでA1セルにデータを入力してみてください。
B1セルにはA1セルを含むデータのみが入力規則のリスト候補になっていると思います。
最後にc1セルに
=IF(B1="","",VLOOKUP(B1,'[物件データ一覧.xlsx]3月分'!$B:$C,2,0))
という数式を入れて完了です。m(_ _)m
まず、お礼が大変遅くなり申し訳ございません。
ちょっとこちらは私には難しそうです。
ちょっとしたマクロを組んで実行してみたら、無反応で。。。そこからしてつまずいていて、ここまでいくにはかなり時間かかりそうです。
クリアできてから、参考にさせていただきたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/10/25 09:26
- Excel(エクセル) 【関数】【マクロ】データの転記の方法について 2 2023/07/26 15:22
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの空のセル
-
エクセルのハイパーリンクがう...
-
エクセルの数式で教えてください。
-
Excel 漢字二文字の先頭と最後 ...
-
EXCELだけを格安で買える店を教...
-
他人が作ったマクロの理解
-
エクセルで比較 かつ 部分一致...
-
一列の中の金額を他のセルに
-
Excelが大きくなってしまう問題
-
エクセルで入力してある文を別...
-
ExcelVBAの漢字の範囲について...
-
余分なEXCELファイルに印刷され...
-
【スプレッドシート】時間入力...
-
【VBA】シート名と見出しが一致...
-
長期休みの関数はありますか
-
表示されている人数だけを数え...
-
Excel関数について
-
Excel関数の先頭に「@」が入っ...
-
Excelの関数について質問です。
-
エクセルの書式設定について教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル詳しい方教えて下さい
-
ExcelでA列をコピーしたいので...
-
エクセルのセル統合について
-
Excelの関数で起きた現象の原因...
-
Excelファイルが閉じられい!
-
Excelのシート背景に不明な文字...
-
エクセルの枠線
-
Excel 領収書発行
-
エクセル関数の使い方を教えて...
-
C列にF列の担当者(A〜)を順番...
-
ピポットテーブルの参照元を別...
-
EXCEl VBA
-
Excelでの判別方法
-
VBAで、サブフォルダにある複数...
-
"りんご"と"みかん"というシー...
-
マクロについて教えてください。
-
EXCELファイルが読み取り専用で...
-
同一セルに入力規則のリストと...
-
100行50列の表で、1~40列でフ...
-
なぜか「Nextに対応するForがあ...
おすすめ情報