- ベストアンサー
excel 2007 の使い方について
価格調査をしています 型番が一緒で価格の違うA店とB店の商品を行ごとに並べ変えたいのですが、 どういった関数を使えばよいのでしょうか? A列: A店の商品 B列: A店の価格 C列: B店の商品 D列: B店の価格 ご存知の方、よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
並べ替えるのに関数は使いません。 #出来ないことはありませんが,無駄にムズカシイだけで,今の状態では実際の役には立ちません。 手順:添付図のように作成します AB列にA店の調査結果を並べる CD列にB店の調査結果を並べる F1でデータタブの「統合」を開始 AB列を追加 CD列を追加 上端行,左端列にチェックしてOKすると,一覧表が自動で出てきます。 必要に応じてF列で全体を並べ替えます #応用 F列の商品一覧が既知で事前に作成済みならば,F:H列を選択して「統合」を実行すると,作成済みの商品一覧に数字を埋めさせることも出来ます。 #別の方法 case1)上述の手順や,あるいは case2)調査対象商品名が既知であればF列にそれを並べ,あるいは case3)A列とC列をとりあえずF列に縦に連ねてコピー,F列でデータタブの「重複の削除」を使い, F列の「商品一覧」が作成できれば,あとは簡単で G2: =IFERROR(VLOOKUP($F2,A:B,2,FALSE),"") 以下コピー H2: =IFERROR(VLOOKUP($F2,C:D,2,FALSE),"") 以下コピー のように一覧してもいいです。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
質問するのにデータ例でも挙げること。 この場合A、C列に同一商品(名・コード)が2度現れることがないなら、下記の方法もあるだろう。 例データ A-D列 E列は結果 商品1 価格1 商品2 価格2 商品1の価格 a 1 a 21 1 b 2 x 23 5 c 3 y 34 d 4 d 54 4 x 5 c 12 3 E2に =IF(COUNTIF($A$2:$A$100,C2)=0,"",INDEX($B$2:$B$100,MATCH(C2,$A$2:$A$100,0),)) 下方向に式複写。 結果 上記E列 ーー これではA列だけに在る商品がもれる。
- imogasi
- ベストアンサー率27% (4737/17069)
例データ A-D列 商品1 価格1 商品2 価格2 a 1 a 21 b 2 x 23 c 3 y 34 d 4 d 54 x 5 c 12 f 3 ーーーーー E列に、A列の商品をコピー。その最終行の次以下にC列を貼り付ける(操作で) 商品 a b c d x f a x y d c ーーー E列を範囲指定して データフィルターフィルタオプションの設定で 「重複するレコードは無視する」で、F列に商品の重複や漏れの無い、一覧が出る。 結果は下記のF列 ーー F列 G列 H列 商品 価格1 価格2 a 1 21 b 2 c 3 12 d 4 54 x 5 23 f 3 y ー 34 (-は空白セル、左詰防止のため入れた) G2の式は =IF(COUNTIF($A$2:$A$100,F2)=0,"",INDEX($B$2:$B$100,MATCH(E2,$A$2:$A$100,0))) 下方向に式を複写 H2の式は =IF(COUNTIF($C$2:$C$100,F2)=0,"",INDEX($D$2:$D$100,MATCH(F2,$C$2:$C$100,0))) 下方向に式を複写 ーー 結果 上記G,H列。 ーーー この質問の不完全な点はA列の同じ商品が2度以上出てくるのか記述かなく、エクセル関数やデータの扱いの経験が少ない証拠。 もし重複があるなら、上記回答は無駄になる。 ーーー 基本的にこういう「表の組み換え」系の課題は、VBAででも処理しないと難しい(式が大変複雑になる)ことを知っておいて。 複雑な事務的なことに使うなら、VBAを勉強すること。
お礼
説明不足でしたが、親身にご説明いただきありがとうございました!
お礼
つたない説明でしたが、わかりやすく教えていただき、ありがとうございました!