• ベストアンサー

関数を使った並び変え

http://jisaku.155cm.com/src/1372508004_b43b6a8c117508111aa696420d6e2acaaf48a23a.jpg のようにL列~P列まですべて関数で表示させているセルがあります。(実際は1000行以上あります) これを、M列、N列、O列の順番で優先付けさせて並び変えたものをR~V列に表示させたいのですが、R~V列にどのような関数を入れればいいのでしょうか?

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

  • ベストアンサー
  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.3

#2の回答したものです。補足ありがとうございます。 セル(X1)の表示されている数は、M列に書き込まれている数と同じですか。 参考のウェブページだと、14です。 セル(X2)からの数字は、1から始まり、セル(X1)に表示されている数と同じまで、  連続して続いていますか。 セル(Y2)以下には、意図したとおりのものが表示されていますか。 ttp://jisaku.155cm.com/src/1372508004_b43b6a8c117508111aa696420d6e2acaaf48a23a.jpgで 表示してあるものの下のセルには、何も書き込まれてはいませんか。

touch_ken
質問者

お礼

こんにちは~。どうやら私の入力ミスだったようです。 無事に並び変えをすることができました。 本当に助かりました。^^ ありがとうございました~。

その他の回答 (2)

  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.2

こんにちわ この回答は、前の質問の回答者mt2008さんのものを変形させたものです。 X,Y列を補助列として使用します。 セル(X1)=59999-COUNTBLANK(M2:M60000) セル(X2)=IF(M2="",0,$X$1-COUNTIF(Y$2:Y$60000,">"&Y2)) セル(X2)を必要なだけ、下方向にコピー セル(Y2)=M2&"_"&N2&"_"&O2&"_"&ROW() セル(Y2)を必要なだけ、下方向にコピー セル(R2)=IF($X$1<ROW(A1),"",INDEX(L$2:L$60000,MATCH(ROW(A1),$X$2:$X$60000,0),1)) セル(R2)を必要なだけ、右方向、下方向にコピー 注(1)セル(X1)=59999-COUNTBLANK(M2:M60000)のような式になっっている理由は  =IF(A2="","",A2)のように関数で空白になっているものをカウントしないようにするためです。 注(2)セルの指定Y:Yでなく、Y$2:Y$60000になっているのは  一行目に文字を入れたとき、数式を変える必用があるかも知れないので。

touch_ken
質問者

補足

こんばんは~さっそくのご回答ありがとうございます。 さっそくやってみたのですが、うまくいきませんでした。 #N/Aとなってしまった行が半分以上占めてしまいました、 あと、ソートもされていないような感じです。 L~P列に入っている関数になにがあるかで結果が変わってしまうのでしょうか?

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.1

L列とR列との対応が 例えば、L200に対し、R200に=L200と入力されているのであれば、ソート後に新しくセルのデータを読み直してしまうのでうまくいきません。 そこで、R200に=L$200と入力しておけば多分できるのでは? できなかったら、R列以降を一旦コピーして値のみ貼り付けてから、ソートしてください。