- ベストアンサー
Excelで2列の数値から合致する値とそれに付随するテキストの行を同行に移動する方法
こんにちは。Excel2000を使用しております。 以前似たような質問をしたのですが、その応用で質問です。 A列 B列 C列 100 100 AAA 101 102 BBB 102 104 CCC 103 105 DDD 104 105 上記のような場合、B、C列の数値を、A列内の合致する数値と同列に持って行きたいのです。つまり、 A列 B列 C列 100 100 AAA 101 102 102 BBB 103 104 104 CCC 105 105 DDD のようにしたいのですが、どのようにすれば良いのでしょうか? 以前の質問で、A列とB列だけであれば、 =IF(ISERROR(MATCH(A1,$B$1:$B$4,0))=FALSE,A1,"") の巻数で可能であるのは理解しています。 そこに、さらにC列の一緒に移動させることは出来ますでしょうか? 宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
データ先頭行の任意の列に以下の式を貼り付けて、下方向とその右側の列にコピーしてください =IF(ISNA(MATCH($A1,$B$1:$B$500,0)),"",INDEX(B$1:B$500,MATCH($A1,$B$1:$B$500,0))) データは500行まであるものとしています。行数が多いなら500の部分を修正してください(3カ所あります)
その他の回答 (2)
- ham_kamo
- ベストアンサー率55% (659/1197)
マクロで書くとこんな感じでしょうか。 Sheet1のタブを右クリックして「コードの表示」でVBAの画面を出し、以下のマクロを貼り付けて実行してみてください。 Sub 行を揃える() Dim A_cell As Range, B_cell As Range Set B_cell = Range("B65535").End(xlUp) If B_cell Is Nothing Then Exit Sub End If Do Set A_cell = Range("A:A").Find(B_cell.Value) If Not A_cell Is Nothing Then A_cell.Offset(0, 1) = B_cell.Value A_cell.Offset(0, 2) = B_cell.Offset(0, 1).Value B_cell.ClearContents B_cell.Offset(0, 1).ClearContents End If If B_cell.Row = 1 Then Exit Do End If Set B_cell = B_cell.Offset(-1, 0) Loop End Sub
お礼
ご回答有り難うございました。 マクロ自体が理解できておらず、申し訳ありません。 しかし、上記の方法で解決出来ました。
- mu2011
- ベストアンサー率38% (1910/4994)
次の方法は如何でしょうか。 ・シート1に元リスト ・シート2のA列にはシート1のA列がコピー シート2のB1セルに次の数式を設定して、縦横にコピーして下さい。 =IF(COUNTIF(sheet2!$B:$B,$A1)=0,"",VLOOKUP(A1,sheet2!$B:$C,COLUMN()-1,0))
補足
ご回答ありがとうございます。 試してみたのですが、 「数式が計算できません。」とエラーが出ました。 そして 「循環参照の基になるセルを確認する」という ヘルプ項目が表示されてしまいました。
お礼
ご回答有り難うございます。 上記の方法で、解決できました! 有り難うございましたm(_ _)m