###前提・実現したいこと
Sheet1とSheet2がありSheet1にはA列からV列までに項目(1番~20番)項目の下には
A列(名前)B列(金額)は他のシートからSumif関数を使って集計しています。どちらも項目は一番としています。2列で一組です。そのデータをSheet2のA2に条件(1番)を入力すると表のA4には名前B4には金額が転記される。
###該当のソースコード
考え中
Dim sh1, sh2 As Worksheet
Dim row1, row2, maxrow1 As Long
Dim simei, kingaku As Variant
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
rangeshe1("A:V").Select
どこで困っているのですか? 「項目は一番としています」というのは、どういう意味ですか? "番"ではなく、Excelで標準的に使われている"行"や"列"を使って表現する事は出来ませんか。
すみませんでした。1番としているのは、文字列です。A列の項目が1番という文字列で、番号順に名前と、金額が入力されているデータがV列まで続いています。分かりますか?
整理すると、「sheet1は名前と金額の対応表で、10組(A:B列、C:D列、、、U:V列)の表が1つのシートに入っている。 Sheet2のA2セルに調べたい名前を入力しておいて、Sheet1の10組の表の中に調べたい名前が入っていれば、それをA4セルに入れ、対応する金額をB4セルに入れるようなマクロを作りたい。」という事でしょうか? Sheet1で名前が見つかれば、A4セルとA2セルの内容が同じになります。A4セルに名前を入れるのは何故? また、見つからなかった時にA4,B4のセルには何を入れたいのですか???
質問の続きです。Sheet1の表に、同じ名前が複数回含まれている事はありますか?その場合、どの金額をA4セルに入れれば良いのでしょうか? Sheet1の10組の列の長さ(行数)は同じですか、ばらばらですか? どのようにすれば、各組の最後の行を判断できるのでしょう。
説明が下手ですみません。Sheet1で抽出したデータはSheet2の表があってA4に名前B4に金額が入ります。見つからなかった場合は空白のままで。Sheet1の名前は重複はありません。10組の列の長さは最大で30名位です。たびたびすみません。
シート1・2の開始前の状態、処理結果に期待する状態がイメージしにくいです。参考程度のボリュームでいいので、サンプルデータを提示していただけると回答がつきやすくなると思います。
あと質問文を読んでいて、文の切れ目がよくわからないところがあります。 投稿前に相手に伝わる内容か読み返すことと、改行や句読点を適度に入れて読みやすくするのも手かと思います。 例えば最初の一文は「Sheet1とSheet2があり~(中略)~Sumif関数を使って集計しています。」というところまで句読点なく書いてありますが、 自分はこれを(結構時間をかけて)「Sheet1とSheet2があります。Sheet1にはA列からV列まで項目(1番~20番)が記載されています。項目の下には A列に名前、B列に金額が入っており、他のシートからSumif関数を使って集計しています。」と読み取りましたが、これでも意味がよくわかりません。あっていますか?
Sheet2にある名前は1つだけ、それとも複数? 「Sheet2のA2に条件(1番)を入力する」というのと、「Sheet2の表があってA4に名前B4に金額が入ります」との関係は? もう少し判り易い日本語を使ってください。
本当にすみません。Jawaさんの読み通りです。Sheet1には、名前と金額が複数あります。20行位です。Sheet2のA2に検索条件を入れると、Sheet1から一致した番号の名前と金額をSheet2に貼り付ける。必至に解り易く説明しようとしているのですが、初めて投稿したので、ご迷惑をかけています。
そうすると、SHeet1で金額が入っているのはB列だけで、C列~V列に入っている値は、この質問では使わない(無視して良い)という事ですか? それならSheet2のB4セルに関数式を記入するだけで解決できるのですが。
いえ、C列からV列まで交互に名前と金額が入ってます。共に名前=金額で、検索で一致した番号の名前&金額を抽出してSheet2に貼り付けたい。色々調べて、Find関数で出来ないかと・・
vlookupで一組(例えばA-B列)を検索する。それを10個用意して(10個のセルに、vlookup関数の敷を入れて)、そのからエラーでないものを取り出せば出来そう。 括弧の入れ子の階層に上限があるから、たぶん1つの関数式で書くことは無理だと思います。
回答1件
あなたの回答
tips
プレビュー