アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

エクセル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セル順になる方法を教えてください。
よろしくお願いします。

A 回答 (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)) といった具合です。

※ 上記は要領のみですので、実際は空欄の場合の処理などを加える必要があるのかも知れません。
    • good
    • 0
この回答へのお礼

早々の回答をありがとうございます。
2)並び替え用のシートを利用する方法
でやってみました。

思った通りの物ができました。
ありがとうございます。
助かりました!

お礼日時:2021/06/10 13:59

>並べ替えフィルターの並べ替えで『最終戦されるキー』に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列に相応の日付を入れる。
とかして、再度並べ替えをしましょう。
    • good
    • 0
この回答へのお礼

早々の回答をありがとうございます。
参考になりました。

お礼日時:2021/06/10 14:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!