=(rows(A:A)-1)-day(offset(A1,rows(A:A)-1,0,1,1))-1
rows(A:A)
で、現在何行まであるのか調査します。offset(A1,rows(A:A)-1,0,1,1)
は、最下段のセルをもとめています。B1セルから最大行数だけ下にいったもの(-1は増分の調整、A1に縦セル分そのまま足したらオーバーフローします)。-day(最下段セル)
で、最下段にある日付の日部分だけを取得し、最大行数から引き算します。5/19が最大だとすると、27セル目にあるので、そこから19を引き算、移動分なので-1調整して5/1のセル位置をもとめます。OFFSET(B$1,$A$5-1,0,ROWS($A:$A)-$A$5+1,1)
ですが、以下のようにしてもとめます。$A$5 - 1
月初日のセル位置をもとめます。ROWS($A:$A)-$A$5+1,1
で、全行数から月初日のセル位置を引き算して、行数を取得します。A5-DAY(OFFSET(A1,A5-2,0,1,1))
SPARKLINE(offset(B$1,$A$2-1,0,$A$5-$A$2+1,1))
で実現できます。一番上のセルを基準にして、先月初日から当月初日の前まで引っ張る感じです。セル指定のドル表記は有名ですが、これはセル式のコピー貼り付けをしたときに、指定のセル位置が動かないようにするための指定です。B2に入力したセルは、そのまま右方向にコピー貼り付けして使えます。