Excelでの並び変え方法とは?

このQ&Aのポイント
  • Excel2003で開くとerrorが発生し、使えない状態となった。Excel2003でも計算可能な式を教えてほしい。
  • 行に日付、列に商品名、その間に販売個数のデータがあり、日付順に並び変えたい。データの空白を上に詰める方法を教えてほしい。
  • 同じシート上に配置し、余分な行や列を使わずに処理を行いたい。
回答を見る
  • ベストアンサー

Excelでの並び替えについて(二度目)

一度こちらで、同タイトルで質問したものです。 http://okwave.jp/qa/q7834603.html 一度は解決したのですが、 Excel2003で開いたところ、errorになってしまい、使うことができませんでした。 そこで、Excel2003でも計算可能な式を教えていただけませんでしょうか? やりたいことは、行に日付、列に商品名を入力してあり、その間に販売個数が入ったデータを、 画像のように、上から日付順で並び変えたいと思っています。 データが空くところは上に詰めることで、空白ができない方法で。 関数でのやり方があればと思います。 また、可能な限り、余分な行や列は使わずに、同じsheet上に配置したいと思います。 二度目ということで、お手数おかけしますが、よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

今回はどう上手くいかなかったのかちゃんと説明できましたね。 同じく前回と同じ表の配置で。 I2には =IF(ROW(I1)>COUNT($B$3:$F$33),"",INDEX(A:A,SMALL(IF($B$3:$F$33<>"",ROW($B$3:$F$33)),ROW(I1)))) と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力、下向けに沢山コピー。 J2には =IF(ROW(J1)>COUNT($B$3:$F$33),"",INDEX($2:$2,MOD(SMALL(IF($B$3:$F$33<>"",ROW($B$3:$F$33)*100+COLUMN($B$3:$F$33)),ROW(J1)),100))) と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力、下向けに沢山コピー。 K2は今回はもっと簡単に =IF(I2="","",VLOOKUP(I2,A:F,MATCH(J2,$2:$2,0))) と記入、これはふつーにEnterで入力、下向けに沢山コピー。 します。

seresuthi
質問者

お礼

こちらの数式で組んだところ、 エクセル2003でも正しく表示させることができました! ありがとうございます。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 前回回答した者です。 前回の数式も手元のExcel2003で作成したもので、 こちらで検証したところちゃんと表示されましたので、投稿しました。 エラーの原因として考えられるコト (1)配列数式になっているかどうか? (2)数式内の範囲指定の列数がOFFSET関数やINDEX関数等の列数と一致しているかどうか? 前回は5品目での数式でしたので、一番気がかりなのは範囲指定の列数違いです。 前回アップした配置で仮に20品目の場合の数式を参考程度で載せておきます。 B2セル(配列数式)は =IF(A2="","",INDEX(Sheet1!$B$2:$U$2,,SMALL(IF(OFFSET(Sheet1!$B$2:$U$2,MATCH(A2,Sheet1!$A$3:$A$33,0),,1)<>"",COLUMN(A1:T1)),COUNTIF($A$2:A2,A2)))) C2セル(配列数式ではありません)は =IF(COUNTBLANK(A2:B2),"",INDEX(Sheet1!$B$3:$U$33,MATCH(A2,Sheet1!$A$3:$A$33,0),MATCH(B2,Sheet1!$B$2:$U$2,0))) といった感じで数式内の列範囲部分を変更する必要があります。 ぱっ!と思いつくのはこの程度です。 ※ 他の方も良い方法を投稿されていますので、そちらも試してみてはどうでしょうか?m(_ _)m

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

あなたが前のご相談に書いた通りにご自分のエクセルを作成します I2に =IFERROR(INDEX(A:A,SMALL(IF($B$3:$F$33<>"",ROW($B$3:$F$33)),ROW(I1))),"") と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力。下向けに沢山コピー。 J2に =IFERROR(INDEX($2:$2,MOD(SMALL(IF($B$3:$F$33<>"",ROW($B$3:$F$33)*100+COLUMN($B$3:$F$33)),ROW(J1)),100)),"") と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力。下向けに沢山コピー。 K2に =IFERROR(INDIRECT(TEXT(SMALL(IF($B$3:$F$33<>"",ROW($B$3:$F$33)*100+COLUMN($B$3:$F$33)),ROW(K1)),"!R00!C00"),FALSE),"") と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力。下向けに沢山コピー。 すると出来ます。

seresuthi
質問者

補足

もう一度試してみました。 現在、Excel2003[.xls]で作成されたものを使用し、 Excel2010互換モードで開いて式を打ち込みました。 表示はされるのですが、上書き保存時に「機能の大幅な損失」とう言うエラーが出てしまいます。 関数が2007より以前のものでは使用できないようです。 保存後、2003で開いてみると、計算式のところが[#NAME?]となってしまいます。 互換性モードに問題があるのでしょうか?

関連するQ&A

  • Excelでの並び替えについて。

    Excelでの並び替えで困っています。 現在、行に日付、列に商品名を入力し、その間に販売個数を入力し管理しています。 入力はしやすいのですが、データとして扱う場合に検索等がしにくいので 日付、商品名、個数を1行に並び替えしたいと思っています。 個数が多いため、手動で全て行うのは不可能に近いです。 関数で行う事ができれば良いのですが、何か方法がありますでしょいうか。 できれば、個数が空白のセルは無視して、上に詰めて並び替えができれば理想です。

  • エクセル 並び替えがうまくいかない。

    不法投機されたゴミの種類ごとの個数が記載されているエクセルの表を仕事で使用しています。 数が多い順に1位~3位までのゴミの種類をあげてくれと上司にいわれたので並び替えを使用し算出しようとしました。ところが右端にあるゴミの個数のみ空白行がない形でびっしり並び替えされ、並び替えされなかった左端にあるゴミの種類の項目と対応しなくなってしまいました。 そのため、結局 目視で探すことになりました。 このような一つの表であるにもかかわらず、特定の列のみ並び替えされ、連動して並び替えしてほしい列が並び替え対象外となる理由ないしは回避方法についてご存知の方がいたらご教示ください。

  • EXCELの列の並び替え

    EXCELでA列、B列にA~Zまでそれぞれアルファベットのデータが入っています。 ここで、A列、B列両方にあるデータは同じ行に、 A列にあってB列にないものは、B列に空白を。 B列にあってA列にないものはA列に空白を。 このようにA~Zまで並び替えるにはどうしたらよいのでしょうか? セルの中の文字も左からABC..順に並び替えます。

  • エクセル データの並び替え

    使用PC:DOSVマシン 使用OS:WinXP 使用ソフト:Excel2002 横(行)に、各セルに順番に日付、データ、日付、データ・・・と並んでいるものを A列:日付 B列:データにして、縦に転換したいのですが・・・ 図解 (1)横に各セルにこのように展開しています(区切り位置指定ウィザード使用後) 2002.3.1 190.15 2002.3.4 192.35 2003.3.5 193.48・・・ (2)これを、 A列:日付 B列:データ 2002.3.1    190.15 2002.3.4    192.35 2003.3.5    193.48  ・        ・  ・        ・ としたいんでごわす、ご教授お願い致します。

  • Excel2003でのデータの並び替えにつて

    Excel2003 Sheet1内で、列で「同じデータの個数の多い順」にレコードを並び替える方法を教えてください。 よろしくお願いします。

  • エクセルで並び替えが上手くいかない。

    エクセル2000を使用しています。 ある100行程度のデータがあってその一つのセルには年月が入っています。 例で  200710 200603 200707 200512 のような感じですべて半角文字です。 で、並び替えで古い順に並べようとソートを掛けたのですが、ほとんどが きちんと並び変わるんですが一部のみ上に来なければいけないのに下の方に あったりと上手くきません。 間違っている個数は5、6個です。 なぜこうなってしまうのでしょう? やり方が悪いのでしょうか?

  • Excelの条件式を教えてください

    Excel2000です。 業務用ソフトからCSV形式でExcelにデータを落として きました。20年近く前のものですが、必要あって 過去の売上データを集計したいのです。 日付別の各支店ごとの売上が集計されています。 A列に年月日(降順)、B列に支店名(10店舗)、 C列に各支店の売上日計です。 A列      B列     C列 2005 01 29 恵比寿支店  1,000,000 2005 01 29 新宿支店   2,000,000 上のようになっていて、支店が10店あるので、 A列の“2005 01 29”という日付は10行あります。 その“2005 01 29”の10店分の売上合計が 出ていないので、それを出したいのです。つまり、 10行目のつぎに自動で1行挿入して、C列に 10店合計売上を表示させたいのです。 DSUMという関数で考えたのですが、うまくいきません。 同一日付が10行あるその最後に1行挿入して、そこに 10店の日計の合計を出したいと考えます。 10数年分の膨大なExcelデータです。 どのような関数で、どのような式を組み立てたら よいのか、教えてください。 よろしくお願いします。

  • エクセル マクロ VBA

    エクセルのマクロについて質問です。 『集計』というブックの『集計開始』というシートに     A列    B列     C列 1行目 見出し  見出し   見出し      (商品名)  (支店)  (個数)         2行目 コメント  空白     空白   3行目 空白   空白     空白 4行目 商品名  支店     個数  5行目 空白   空白     空白 6行目 空白   空白   コメント1 7行目 空白   空白     空白 8行目 空白   空白   コメント2 9行目以降    上記のデータ(見出しを除く)の繰り返し というデータが入っています。 B列の中に『AAA』という文字が含まれていたら、そのセルを空白に置換し、 含まれていなかったら、そこで処理がとまったりエラーが出たりしないで次のステッップへ進み、 C列の中に『B』という文字が含まれていたら、そのセルを空白に置換し、 含まれていなかったら、そこで処理がとまったりエラーが出たりしないで次のステッップへ進み、 (今は、手作業で編集→置換→検索する文字列の中に『B*』と入力し、 置換後の文字列を空白にしてすべて置換ということをやっています。)                            ABC列(データーの入っている行まで)の空白を含む行を一括削除し、 以下のような形にしたいのです。     A列    B列     C列 1行目 見出し  見出し   見出し      (商品名)  (支店)  (個数)         2行目 商品名  支店     個数  3行目 商品名  支店     個数          ・         ・ このようにするマクロ文はどのようになりますでしょうか?

  • Excel データの並び替え

    以下のようにする方法がないでしょうか? データベースのようにつかいたのです。 A列にデータをいれるとB列に自動で、 以下のようにならぶようにしたいです。 空白セルを飛ばし上から順番に並べかえたいのですが 方法はないでしょうか?不可能なのでしょうか? 可能でしたらB列にいれる数式、関数をおしえてください。    A  B  C 1  5  5 2  4  4 3  7  7  4     1 5  1  3 6 7  3

  • 並び替え機能を使わずに関数で並び替える

         A列 B列 C列  1行目 甲  9  商品G 2行目 乙  4  商品F 上の表をB列の昇順で並びかえ、下のように再配置するにはどのような関数を書けば良いでしょうか。並び替え機能を使わず、関数で上の表の下に下の表を配置します。      A列 B列 C列  1行目 4  乙  商品F 2行目 9  甲  商品G

専門家に質問してみよう