• ベストアンサー

エクセル セル参照では並び替えが機能しないのをわかりやすく解説してほしい

次のような2つの表を作成しようと思います。 (1)表(仕入表) コード 商品名 仕入数量 仕入単価 ~  1   A  2   B  3   C  4   D  5   E (2)表(売上表) コード 商品名 売上数量 売上単価 ~  1   A  2   B  3   C  4   D  5   E  (2)表作成の際、コードはオートフィル、商品名はセル参照で上の表からとってきたとします。ですが、商品名をセル参照で入れてしまうと並び替えがうまくいきません。  並び替えを正常に行うためには、VLOOK関数を使うのが適当かと思いますが、なぜセル番地で入れると並び替えが機能しなくなるのか、このあたり何となくわかっても論理的に明解にうまく説明することができません。  どなたかわかりやすくご教示いただければさいわいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Piazzolla
  • ベストアンサー率44% (88/196)
回答No.2

回答になっているか分かりませんが。。。 並び替えは、セルを並び替えてるのではなく、セルの中の値を並び替えてるからではないでしょうか。 したがって、セル参照では、セルの値がどうなっても、いつも当該セルの内容が表示されるので、参照されているセル(質問では仕入表)が変わらない限り、いつも同じ値です。 一方、VLOOK関数は、セルの値を検索して、該当するデータを持ってきて表示しますから、並び替えが反映されますよね。(ただし、左側を昇順にしないとめちゃくちゃになりますが。)

shio_chama
質問者

お礼

回答ありがとうございます。 >>セル参照では、セルの値がどうなっても、いつも該当セルの内容が表示されるので、参照されているセル(質問では仕入表)が変わらない限り、いつも同じ値です。 「セル参照では、いつも該当セルの内容が表示される」というところがポイントだと思いました。かなりみえてきました。 お世話になりました。

その他の回答 (2)

  • macchan1
  • ベストアンサー率38% (52/136)
回答No.3

相対参照で貼り付けた場合は移動により数式が変更されてしまします。 このような場合は、同じシート内にリンク貼り付け型の数式で貼り付ければよいと思います。 例えばSheet1の中で貼り付けるなら、「=A1」の部分を「=Sheet1!A1」のようにします。 これで並べ替えを行ってもきちんとついてきます。

shio_chama
質問者

お礼

回答ありがとうございます。 リンク貼り付けという手もありましたね! 思いつきませんでした。

  • ohaziki
  • ベストアンサー率50% (2/4)
回答No.1

(2)表作成の商品名のフィールドに、たとえば・・・ コード 商品名  1   =B2  2   =B3  3   =B4  4   =B5  5   =B6 このように、入力されていたとします。 コードをキーに降順に並べ替えを実行すると、コード「5」商品名「=B6」の行は、現在の位置より4つ上に移動することになりますね。 このセル参照は「相対参照」ですから、並べ替えによって移動すると同時に自動的に調整され、「=B6」から4つ上の「=B2」に変わります。 したがって、コード「5」商品名「=B2」となり、商品名に関しては、並べ替え前の結果が表示されます。 セル参照を「絶対参照」にすれば、正しい結果が得られますが、VLOOKUP関数をご存知なら、それを使われたほうが、適当かと思います。 ご理解いただけましたでしょうか?

shio_chama
質問者

お礼

 アドバイスありがとうございます。 絶対参照というのは思いつきませんでした。 私も人に説明してほしいと言われたのですが、わかるように説明するのは骨が折れるところです。ヒントにさせていただきたいと思います。 お世話になりました。

関連するQ&A