重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

BookAのデータを元にBookBに文字列を抽出する。
BookAに下記のデータがあります

ブック名="データA" シート名="名称"としてあります。
A B C D
1 A社   B社
2 りんご 青森 りんご 青森
3 みかん 愛媛  ぶどう 栃木
4 ぶどう 山梨  すいか 茨城

上記データを元に下記BookBに抽出する

ブック名="マスターA" シート名="メイン"としてあります。
  A   B   C
1 A社 みかん 愛媛

上記A1,B2に入力規制のドロップダウンリストから、A1="A社"、B1="みかん" を選択した時に
(ここまではINDIRECTを使って出来ました。)
C1に"愛媛"を抽出するにはどうしたらよいのでしょうか?

A1にB社を選んだ時には、B1では "りんご"、"ぶどう"、"すいか" が選択できるので
C1にはそれぞれ "青森"、"栃木"、"茨城" を抽出したいのですが。

よろしくお願いします。

A 回答 (2件)

次のマクロをコピーして実行してみてください。

シート1のデータを並べ替えたものがシート2に作成されます。これでよろしいのでしょうか。
Sub Macro2()
'
' Macro2 Macro
' マクロ記録日 : 2010/10/24 ユーザー名 :
'

'
Dim mygyo As Integer, myco As String, myendgyo As Integer, myarray1 As String, myarray2 As String, myretu As Integer
Dim mystartgyo As Integer, newgyo As Integer
Sheets("Sheet1").Select
myco = Cells(1, 2)
myendgyo = Cells(1, 4)

Sheets("Sheet2").Select
For mygyo = 2 To myendgyo '社名
Cells(mygyo, 1) = myco
Next

For mygyo = 2 To myendgyo 'その他
Sheets("Sheet1").Select
myarray1 = Cells(mygyo, 2)
myarray2 = Cells(mygyo, 3)

Sheets("Sheet2").Select
Cells(mygyo, 2) = myarray1
Cells(mygyo, 3) = myarray2
Next

Sheets("Sheet1").Select
myco = Cells(1, 3)
mystartgyo = Cells(1, 4) + 1
myendgyo = Cells(1, 4) + Cells(1, 5) - 1

Sheets("Sheet2").Select
For mygyo = mystartgyo To myendgyo '社名

Cells(mygyo, 1) = myco
Next
MsgBox (myendgyo)
For mygyo = 2 To myendgyo 'その他
Sheets("Sheet1").Select
newgyo = Cells(1, 5) - Cells(1, 4) + mygyo + Cells(1, 5) - 1
myarray1 = Cells(mygyo, 4)
myarray2 = Cells(mygyo, 5)

Sheets("Sheet2").Select

Cells(newgyo, 2) = myarray1
Cells(newgyo, 3) = myarray2
Next



End Sub
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。

とりあえず、これでやってみます。

また何かありましたらよろしくお願いします。

お礼日時:2010/10/25 20:17

No1ですが、大事なことを忘れていました。

A社B社各会社のデータ行の最終行の数字(ここでは4,4)をD1,E1に入力しておいてください。
    • good
    • 0

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