• 締切済み

エクセルマクロ 並び替えについて

hananoppoの回答

  • hananoppo
  • ベストアンサー率46% (109/235)
回答No.3

VBAを使わなくても実現できます。 1行が項目行、2~11行がデータ行だとします。 (1) G~Q列に次の項目を追加します。 施設種別,喫茶店料金,売店料金,休憩室料金,部屋料金,お土産屋料金,喫茶店回数,売店回数,休憩室回数,部屋回数,お土産屋回数 (2) G2~Q2セルに次の数式を入力します。 G2 =IF(D2="喫茶店",1,IF(D2="売店",2,IF(D2="休憩室",3,IF(D2="部屋",4,IF(D2="お土産屋",5,""))))) H2 =IF(G2=1,E2,0) I2 =IF(G2=2,E2,0) J2 =IF(G2=3,E2,0) K2 =IF(G2=4,E2,0) L2 =IF(G2=5,E2,0) M2 =IF(G2=1,F2,0) N2 =IF(G2=2,F2,0) O2 =IF(G2=3,F2,0) P2 =IF(G2=4,F2,0) Q2 =IF(G2=5,F2,0) (3) これらの式を11行までコピーします。 (4) 喫茶店料金~お土産屋回数の合計を13行に表示するようにします。 H13セルに =SUM(H1:H12) と入力し、それをI13~Q13セルにコピーします。 並べ替えを行うので、広めに範囲指定するのがポイントです。 (5) A2:Q11の範囲を選択し、並べ替えを実行します。 優先キーは入金(降順)、施設種別(昇順)、予約日(昇順)、範囲の選択行はタイトル行を選択します。 以上で実現できるはずです。

ennderesusu
質問者

補足

ありがとうございます。 大変良くわかりました。以上の処理をマクロボタン一回で できるコードはあるのでしょうか。

関連するQ&A

  • エクセル 並び替え ユーザー設定リストについて

    エクセル 並び替え ユーザー設定リストについて エクセル2003で以下のような表を作成しました。 売上日 性別 売上施設 交通機関 年齢 1月7日 男 売店 電車 80 1月6日 女 喫茶店 車 70 1月5日 男 休憩室 電車 60 1月4日 女 売店 車 50 1月3日 男 休憩室 電車 40 1月2日 女 喫茶店 車 30 1月1日 男 売店 電車 20 2つの条件で並び替えをしたいのです。 一つ目は性別で、二つ目は売上施設に関してユーザー設定リストで作成したいのです。 エクセル2007だと二つ目の条件にユーザー設定リストを作成できるのですが 2003だとうまくいきません。 売上施設のユーザーリストの順番は、休憩室→喫茶店→売店です。 性別を男を優先に、 休憩室→喫茶店→売店 次に女を優先に 休憩室→喫茶店→売店 にして、2003で並び替えするにはどうすればいいのでしょうか。 よろしくお願いします。

  • エクセルの並び替えについての質問です。

    エクセルの並び替えですが、例えば列の並び替えで2列(仮にA列・B列)に数値は入れてあり、A列を基準に昇順する場合2003ではその並べ替えをしたい範囲を指定して、「データ」→「並べ替え」→範囲の先頭行をデータにチェックを入れて、最優先されるキーを列Aにして、昇順にチェックを入を入れれば、A列基準で並び替えが完了しましたが、2007ではではその並べ替えをしたい範囲を指定して、「並べ替え」→最優先されるキーを選択すると列A・列Bの選択ではなく、A・B列の1行目の数値の選択となり、それで並び替えると1行目はそのままで、2行目からの並び替えになってしまいます。また1行目を数値のない空欄セルにしておいて1行目から上記作業をすれば、優先されるキーは列A・列Bの選択肢が出ますが、もしその表が1行目が空欄で無い場合はどうするのでしょう?また、2003では並び替えの作業を『繰り返し』で別の表も同じく並び替えの作業が出来ますが、2007では上記の1行目空欄セルにしておいてから並び替えをして『繰り返し』の作業は出来ません。 どの様にすれば、『繰り返し』の作業も出来るのでしょうか?

  • エクセルと値の検索について

    エクセルと値の検索について 売上日 性別 売上施設 交通機関 単価 1月7日 男 売店 電車 1000 1月6日 女 喫茶店 車 20000 1月5日 男 休憩室 電車 1000 1月4日 女 売店 車 1000 1月3日 男 休憩室 電車 1000 1月2日 女 喫茶店 車 1000 1月1日 男 売店 電車 1000 2月1日 女 休憩室 車 1000 2月1日 男 部屋 電車 1000 2月2日 女 お土産屋 車 1000 2月3日 男 喫茶店 電車 1000 2月4日 女 売店 車 1000 上記のような表をエクセルで作成しました。 単価に一つでも「20000」の値があれば、 それを単価の上のセルに「単価に20000が含まれているセルがあります」と 表示したいのです。 関数で処理できるのでしょうか。お願いします。

  • エクセル 並び替え&画像

    基本となるファイルには シート1の上部に画像がありその下に表があります。 それをシート2の上部に表、画像を表の下というふうに並び替えを行いたいです。 ・並び替え ┏━┳━┳━━━━━┓   ┏━┳━┓ ┃1┃A┃あいうえお┃   ┃1┃A┃ ┃1┃A┃かきくけこ┃ ⇒ ┃2┃B┃ ┃3┃C┃さしすせそ┃   ┃3┃C┃ ┃2┃B┃たちつてと┃   ┃4┃ ┃ ┃5┃D┃なにぬねの┃   ┃5┃D┃ ┃5┃D┃はひふへほ┃   ┗━┻━┛  ┗━┻━┻━━━━━┛  右の表(シート1)を左の表(シート2)のように並び替えがしたいです。 1列目の数字を基準に並び替えるのですが、 飛んでる数字を表示して順に並べたいのです。 3列目以降はいりません。 通常は約50列、約30行あるのですがこれくらい小さいものの応用だと思い、 この小さな表で質問させていただきました。 ・画像の移動 シート1のセルA1~セルE5の大きさの画像があるとします。 この画像をシート2のセルC10~E13に移動して それに合わせて大きさも変更したいです。 最終的にはマクロを組むところまでできるとうれしいのですが、 できる範囲で教えてください、お願いします。

  • エクセル関数で並び変え

    以前、2つの列の並び変えを教えていただいたのですが、3列の並び変えに変更することになったので教えてください。 http://jisaku.155cm.com/src/1372225760_41870f790e68dabc8acb8dcb5e71cd4665397864.jpg のような表があったとします。 A列、B列、C列を並べ替えしたものがE列、F列、G列に入っています。 優先順位としてE列、F列、G列の順番で並べ替えたいと思っています。 A列、B列、C列は文字ですが、E列、F列、G列は関数が入力されています。 A列、B列、C列の文字を変えた時に自動で並び変えてE列、F列、G列に反映させるにはどのように関数を組めばいいのでしょうか?

  • 並び替え 助けてください

    はじめまして 同じ質問をされてると思いますが皆さんのお力をお貸しください。 A列にコード番号(約150行)、B列に会社名、C列に月売上目標、D列に毎日の売上を記入する表があります。 C列の月売上目標は会社ごとに違います、毎日の売上で目標に近い順に並び替えがしたいのですが関数を使えば出来るかと考え色々探しましたが解かりません。どなたか良いアドバイスお願いします なお関数については素人です、office xp 使用 よろしくお願いします。

  • 売上日 性別 売上施設 交通機関 年齢 単価

    売上日 性別 売上施設 交通機関 年齢 単価 1月7日 男 売店 電車 80 1000 1月6日 女 喫茶店 車 70 2000 1月5日 男 休憩室 電車 60 3000 1月4日 女 売店 車 50 4000 1月3日 男 休憩室 電車 40 5000 1月2日 女 喫茶店 車 30 6000 1月1日 男 売店 電車 20 7000 2月1日 女 休憩室 車 10 8000 2月1日 男 部屋 電車 0 9000 2月2日 女 お土産屋 車 40 10000 2月3日 男 喫茶店 電車 30 11000 2月4日 女 売店 車 30 12000 エクセル2007で上記のような表を作りました。 この後、売上施設ごとの単価を一発で出したいのですが、関数(IF関数とか)で処理すれば早いか ピボットテーブルで処理するのが早いか、迷っています。 性別ごとの単価を見たいとか、月ごとに単価を見たいと思えば、やはりピボットのほうがいいのでしょうか。 初心者ですいません。お願いします。

  • エクセルと関数について

    エクセルと関数について 売上日 性別 売上施設    料金 1月7日 男 売店 7000 1月6日 女 喫茶店 6000 1月5日 男 休憩室 3000 1月4日 女 売店 6000 1月3日 男 休憩室 3000 上のような表をエクセルでシート1に作成しました。 実は四行目及び六行目の売上施設「喫茶店」の3000円は 料金の2000円と寄付の1000円からなっています。 やりたい処理は、シート1をシート2にコピーした瞬間に この四行目及び六行目を分解して、以下のように表示する方法は あるのでしょうか。 売上日 性別 売上施設    料金 1月7日 男 売店 7000 1月6日 女 喫茶店 6000 1月5日 男 休憩室 2000 1月4日 女 売店 6000 1月3日 男 休憩室 2000 1月5日 男 休憩室 1000 1月3日 男 休憩室 1000 要は、3000円の部分を2000円に、新たに行を挿入して 1000円部分を表示したいのです。 また、もし、シート1の料金部分に3000円が入っている時には エラーなので、エラーを表示する方法はあるのでしょうか。 教えてください。

  • 並び替えがしたいのですが。。。

    Excel2000を使用しています。 文字列として入力している地番を、数値の昇順に並び替えをしたいのです。どうしたらいいのでしょうか? 地番を文字列としているのは、一つのセルに地番を"-"で区切って入力しています。地番の入力例としては、1-1,10-1,20-1です。そのセルを数値として入力出来ればいいのですが、"1-1"を例にすると1月1日になってしまうので、文字列として入力しています。文字列のセルを昇順に並び替えをすると、1→10→100→2→20…となってしまいます。数値の昇順(1→2→10→20→100)にするには、どうしたらいいでしょうか? 関数を使って"-"の前と後で抜き取り、並び替えすることも考えたのですが、優先キーが3つまでなので困ってます。大字・小字・地番で並び替えしたいのです。 出来れば、件数が3000~5000件程ありますので、そのまま文字列セルの状態で昇順になると嬉しいです。 よろしくお願いします。

  • Excel2007 マクロで並び替えをしたい

    エクセルシートに、A列から順に 部-課-担当-氏名コード-氏名-年齢 というデータが入っています。 部・担当にはデータが入っていますが、課は空白の方も居ます。 このデータを、こちらが決めた規則によって並び替えるマクロを作りたいと思っています。 (1)まず、A部⇒B部⇒C部⇒D部の順で並べる (2)次に、E課⇒F課⇒G課⇒H課の順で並べる (3)さらに、I担当⇒J担当⇒K担当⇒L担当⇒M担当の順で並べる (4)最後に、特定の人物の氏名コード(数字)を指定して並び替える。O⇒P⇒Q⇒R(管理者を各担当の一番上に持ってきたい為) 要するに、(1)⇒(2)⇒(3)⇒(4)の優先度で、ユーザー設定リストによる並び替えを行いたいです。 初めは「マクロの記録」を利用しようと思ったのですが、 ・並び替えを行うシートの列の並びが毎回同じではない ・見出し行の名称も微妙に違う場合がある ・データの数(行数)が毎回違う よって、できれば毎回並び替えを行う列を、部分一致による検索で指定できればと思います。 (例:見出しは必ず1行目にあるものとし、部分一致検索で「部」が該当したセルの列を優先度(1)として並び替える。以降同じように課⇒担当⇒氏名コード順で検索を行い、並び替える) その際考えられる問題点として、「課」が空白になっている場合、並び替えが思い通りにならないという事です。(確か空白行は一番最後になりますよね。) よって、まずは「課」の列にある空白セルに何らかの文字・・例えば-等を入力する必要があると思います。 以上の事をマクロで行えるでしょうか? マクロ初心者なのですが、職場にマクロを使える方がいない為どこから手をつけていいか悩んでいます。 こういう方法使ったらいいんじゃない?とか大体でもいいので教えていただければ幸いですm(_ _)m