お世話になります。
エクセル365を使用しています。
Aセル Bセル Cセル Dセル Eセル Fセル
10 31 ABC12345 トマト商社 三菱UFJ 五反田 03 01 100,000
10 15 AA 7890 ミカン販売 三井住友 上野 03 02 250,000
10 31 BBB 777 バナナ商会 横浜銀行 上野 03 02 150,000
10 10 D 5678 メロン産業 みずほ 三鷹 03 02 100,000
・
・
・
と続いていき、F列30行目・31行目に1ページ目の合計額、F列60行目・61行目に2ページ目の合計額、F列89行目に3ページ目の合計額、F列90行目に1~3ページ目の総合計額が出るようになっています。
一覧の内容はDBシートからVLOOKUPで表示させています。
Aセル・Eセルは共に月日なのですが(10 31だったら10月31日)
最優先されるのがEセルの日付順、次の優先がAセルの日付順の一覧になるようにしたいです。
並べ替えフィルターの並べ替えで『最終戦されるキー』にE列、『次に優先されるキー』にA列を設定して実行してみたのですが、ページごとの合計額が全部下の方へ行ってしまい、1~3ページまで上詰めされてしまいました。
F列のそれぞれのページ合計の位置などは崩さず、1~3ページ目のデータがEセル順のAセル順になる方法を教えてください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんにちは
直接実現するのは難しいと思いますが、いくつか方法は考えられます。
1)作業列を利用して、並べ替えを行う方法
作業列に関数等で並び替えの序数を算出します。
その際に、合計欄は30、31、60、61・・・固定となるようにし、序数はこれらの数値を飛ばすように設定します。
序数の作成は、例えばE列1列だけなら
=SUMPRODUCT((E:E<=E1)*1)
のような関数式で、下方にフィルコピーする要領です。
第二キーも含めるなら、
E列の序数*1000 + A列の序数 + 行番号/1000
みたいな感じです。(行番号を加えているのは、同序列が出た時のため)
この時に、合計欄の番号を飛ばすには、上記の序数を(30*1000で除した商)*2000を加算しておけばよいことになります。
一方で、合計行に関しては、どこかに合計行の目印があると思いますので(例えばE列、A列は空欄とか)、それによって条件分岐で30番目、31番目・・(=30000、31000…)となるようにしておきます。
この列を並び替えのキーにすれば、ご質問のような順になると思います。
2)並び替え用のシートを利用する方法
ご提示のシートを仮に「閲覧用シート」とするなら、そのシートは表示専用として並び替えは「並び替え用シート」で行うようにします。
「並び替え用シート」は閲覧用シートの合計行を除いたシートで、関数等は現状のままです。
このシートで並び替えを行えば、ご希望の並び替えができることは理解できると思います。
(合計欄が無いので、ページ等の形式にはなっていませんけれど…)
「閲覧用のシート」は固定行(30、31…)に合計行があって、形式が固定されているシートです。
このシートの1~29行目は、「並び替え用シート」の1~29行を常に参照し、32~59行は30~57行を常に参照するように予め関数を設定しておきます。
通常のセル参照で直接参照設定を行うと、「並び替え用シート」で並び替えを行うと、参照先の行が変わってしまいますので、INDEXやOFFSET関数で参照設定をしておくことでこれを回避できます。
例えば、=INDEX(並び替え用シート!A:A,Row(A1)) といった具合です。
※ 上記は要領のみですので、実際は空欄の場合の処理などを加える必要があるのかも知れません。
早々の回答をありがとうございます。
2)並び替え用のシートを利用する方法
でやってみました。
思った通りの物ができました。
ありがとうございます。
助かりました!
No.1
- 回答日時:
>並べ替えフィルターの並べ替えで『最終戦されるキー』にE列、『次に優先されるキー』にA列を設定して実行してみたのですが、ページごとの合計額が全部下の方へ行ってしまい、1~3ページまで上詰めされてしまいました。
当然そうなりますよね。各ページ毎に並べ替えではないのですね。
>F列30行目・31行目に1ページ目の合計額、F列60行目・61行目に2ページ目の合計額、F列89行目に3ページ目の合計額、F列90行目に1~3ページ目の総合計額が出るようになっています。
ですから、F列30行目・31行目に1ページ目の合計額がくるように、合計額の行のE列、A列に相応の日付を入れる。
F列60行目・61行目に2ページ目の合計額がくるように、合計額の行のE列、A列に相応の日付を入れる。
とかして、再度並べ替えをしましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) SUBTOTAL SUMIF?? 2 2023/03/16 11:25
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Excel(エクセル) エクセルのVBAで上の表の最下行を求める 4 2022/09/14 15:22
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Word2016でExcelデータを差込し...
-
【Excel VBA】CSV取込時、数字...
-
EXCELの列の幅
-
EXCELで2つのシートから一致し...
-
EXCEL2007で2つのシートのどっ...
-
エクセルの複数ワークシートの...
-
エクセルで前年同日・前月同日...
-
エクセルシートの選択範囲をコ...
-
順位表において先週と今週の数...
-
可視セルのみのコピー
-
VBAで列に計算式を入れたい
-
Excelで複数セルを選択したまま...
-
エクセルでページ毎の計をつけ...
-
EXCELで不良率を出そうと思って...
-
エクセルVBAで複数列データを1...
-
エクセルでシートを隔てての合...
-
セル入力文字が、「右のセルに...
-
パワポの複数ページにまたがる...
-
エクセル、ページをまたがった...
-
ワードの文章囲み枠(?)を消...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Word2016でExcelデータを差込し...
-
【Excel VBA】CSV取込時、数字...
-
EXCELで2つのシートから一致し...
-
Excel 表の必要箇所だけを抜き...
-
EXCELの列の幅
-
エクセルで前年同日・前月同日...
-
エクセルでページ毎の計をつけ...
-
EXCEL2007で2つのシートのどっ...
-
excelの列がいっぱいになり列を...
-
エクセルで電話番号にハイフン...
-
エクセルVBAで複数列データを1...
-
EXCELで不良率を出そうと思って...
-
エクセルの複数ワークシートの...
-
エクセルの余白を0にしても列...
-
エクセルで縦線のいっぱい入っ...
-
Excelで奇数行を削除
-
ExcelのIF関数について
-
Excelのhperlink関数で作ったモ...
-
エクセル:最新データ12件で...
-
ピボットテーブル作成後、重複...
おすすめ情報