- 締切済み
excel2010 数値を出す時の範囲指定について
得意先の当年、前年の売上実績表をExcel2010で作成しています。 Aファイル(売上集計表)とBファイル(前年売上金額)があり、Bファイルを集計し、Aファイルに前年の売上金額を表示します。Aは、当年の順位と会社名と当年の売上金額を表示しています。当年と前年で順位が異なると数値が合いません。当年の順位と会社名をキーにして、前年の売上金額を載せたく思います。例えば当年が1位のA会社が、前年が2位の場合もあります。当年1位は、A会社の売上金額、前年の金額はA会社の2位の売上金額が入り、1位の前年度の金額が入りません A.xlsを立ち上げて、B.xlsを立ち上げ計算して、得意先の当年と前年の数値をA.xlsに書き込んでおります。 A.xlsのB列に1から8の順位までが固定で入力されていて、C列に会社名があり、D列に当年の数値、E列に前年の数値を書き込んでおります。 B.xlsのA列に1から60までの順位があり、B列には会社名があり、C列に前年の数値があります。 当年の数値は問題ないのですが、前年の数値をA.xlsに書き込む際に、B.xlsの順位fがキーになっている為、 数値が逆になってしまう事があります。 A.xlsにある会社名は、当年の数値を見てA.xlsに書き込んでおります。 得意先の順位が、当年と前年において同一であれば問題ないのですが、 異なる場合、数値が異なって書き込まれてしまいます。 当年で8位、前年で9位だとすると(得意先の当年と前年の順位が同一でない場合)前年の8位の値が書き込まれてしまいます。 (異なる得意先の前年の8位の値になってしまいます。) A.xlsのC列の会社名をキーにして、得意先の当年と前年の順位が同一でなくても、 前年の順位を出すにはどうすれば良いでしょうか? 下記コードを用いております Dim iii, jjj As Long Dim myrange1 As Range jjj = 3 For iii = 1 To 8 Set myrange1 = Range("A:A").Find(What:=iii, lookat:=xlWhole) If myrange1 Is Nothing Then Workbooks(ThisWorkbook.Name).ActiveSheet.Range("E" & jjj) = "確認!" Else myrange1.Offset(0, 2).Copy Workbooks(ThisWorkbook.Name).ActiveSheet.Range("E" & jjj) End If jjj = jjj + 1 Next iii 長文・乱文を最後まで読んでくださりありがとうございました。 ご教授ください。 宜しくお願い申し上げます。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- msn-alice
- ベストアンサー率100% (4/4)