Skip to main content

いつもお世話になっております。

(※初投稿につき、不躾な点あればご指摘ください。​)

諸事情により、スライダー形式のフィルターを利用して1シート内で昨対比表示をしたいと思っております。

(スライダーで選択した月の最新月を取り、本年の最新月/昨年の同月を2本並べたいです)

LAST関数で0番目(本年最新月)と、選択した月数番目(昨年同月)をOR条件で並べているのですが、

偶数の月を選択すると意図しない月が混じってしまいます。

LAST() = 0 OR LAST() = MAX(DATEPART('month', [オーダー日]))

​​

————————————————————

【出力結果】​

1月~12月:「21年12月」「21年6月(いらない)」「20年12月」

1月~11月:「21年11月」「20年11月」

1月~10月:「21年10月」「21年5月(いらない)」「20年10月」

1月~9月:「21年9月」「20年9月」

1月~8月:「21年8月」「21年8月(いらない)」「20年8月」

————————————————————

LAST() = MAX(DATEPART('month', [オーダー日]))の部分でn/2月を取ってきてしまっているようでした。

また、開始月を1月以外にしてしまうと同様に意図しない月が選択されるかたちになってしまっているようです。

これはどういった挙動なのでしょうか。

また、解決策をご提示いただけますと幸いです。

2 件の回答
  1. 2022年12月7日 3:45

    バグではなく計算ロジックの誤りです。LAST関数は「最後のマークまであと何個移動すればよいか」を返す関数ですが​、これと比較しているのがMAX(月)になっています。位置関係と月を比較してしまっているので、比較対象がおかしいです。奇数だと表示されるというのは偶然そのようになっているように見えるだけで、開始月を1月以外にすると意図したとおりにならないというもの同じです。

    スライダーで月を選択する理由が分かりませんが、LAST関数で位置を取らずにWINDOW_MAX関数で月を直接指定したほうが早いと思います。

    バグではなく計算ロジックの誤りです。LAST関数は「最後のマークまであと何個移動すればよいか」を返す関数ですが​、これと比較しているのがMAX(月)になっています。位置関係と月を比較してしまっているので、比較対象がおかしいです。奇数だと表示されるというのは偶然そのようになっているように見えるだけで、開始月を1月以外にすると意図したとおりにならないというもの同じです。​スライダーで月を選択する理由が

0/9000