web-dev-qa-db-ja.com

毎週日曜日を順番に追加する方法は?

だから私は簡単な式を使ってみました:

=date(2019,3,10) 
=date(2019,3,10)+7
=date(2019,3,10)+14
=date(2019,3,10)+21

... etc.

しかし、最初の上位3〜4個のセルを強調表示してドラッグしてパターンを作成すると、この場合は機能しません。私の目標は、シートをその年のすべての日曜日の日付に自動入力することです。これは、今後2〜3年続くこともあります。

何かお勧めですか?

1
timmyturner
  • =DATE(2019,3,10)+7の代わりに、この式を使用して下にドラッグします

    =DATE(2019,3,10)+ROW(A1)*7

    0

0
user0

ようこそ!希望どおりに動作することを願っています。 [〜#〜] arrayformula [〜#〜] を検討しましたか?

=ARRAYFORMULA(DATE(2019,3,10)+(ROW(1:10)-1)*7)

その下に空白のセルが10個あるセルに貼り付けてみてください。この例では10の日付のみに移動しますが、選択した長さでもかまいません。配列数式は、それらが占有する単一のセルだけでなく、着信するセルまたは値のセット全体に対して要求された計算と演算を実行するため、優れています。私はわかりやすくするためにこれを苦痛な詳細でタイプアウトしていますが、これを読んでいる人は誰も脅迫されるべきではありません。慣れれば使いやすいです。

=ARRAYFORMULA( DATE(2019,3,10) + ( ROW(1:10) -1 ) *7 )

英語では、計算方法の順に:
=ARRAYFORMULA()
入ってくるすべてのデータをカバーするために、含まれている式を何度も繰り返すことを意味します。
DATE(2019,3,10)
ご存じのように、 [〜#〜] date [〜#〜] は、シートが理解できる形式で日付を生成するだけです。

+(ROW(1:10)-1)*7
あなたの例には、7の倍数の増加するリストが含まれていました。これもここで必要な最後のものです。あなたの7、14、21…「追加」リスト。しかし、入力したり、下にドラッグしたりする必要はないので、ここでは一般的なトリックを使用して、シートに質問しています [〜#〜] row [〜#〜] 「最初の10行の行番号」を出力する関数。 ROW(1:10)

当然のことですが、最初の10行の行番号は1〜10の数字にすぎません。ただし、これは数字の配列全体なので、ARRAYFORMULAは1〜10の整数ごとに1回計算を実行します。

1つの詳細に対処する必要があります。リストは、最初の日に0日を追加することから始まると考えることができます。firstの日付に1週間を追加する必要はありません。したがって、ここでは1〜10は必要ありません。 0から9を追加したいので、繰り返しごとに、現在の数から-1が1を減算します。

最後に、その時間に7つの*7を掛けます。したがって、リスト0、1、2…は0、7、14…になります。
次に、選択した日付に0〜63のリストが追加されます。各入力番号に対して1つの出力セルがあります。したがって、たとえば52週間分の値を生成するには、それをROW(1:52)に変更するだけです。

すべてが1つのセルに「存続」し、将来その1つの場所で変更できます。柔軟性があり、自動で、大量の出力セットでも非常に高速です。あなたや他の誰かを怖がらせていないことを願っています—ARRAYFORMULAは素晴らしいツールです。

0
Joel Reid
  • また、ARRAYFORMULAを使用して、毎週日曜日に2019-3-10から2020-3-10
=ARRAYFORMULA(TO_DATE(FILTER(ROW(INDIRECT("A"&
 DATEVALUE("2019-3-10")&":A"&
 DATEVALUE("2020-3-10"))), MOD(ROW(INDIRECT("A1:A"&COUNTA(ROW(INDIRECT("A"&
 DATEVALUE("2019-3-10")&":A"&
 DATEVALUE("2020-3-10"))))))-1, 7)=0)))

0

0
user0
  1. 最初のセルに希望の日付を入れます。

    たとえば、セルA23に3/10/2019と入力します

  2. そのすぐ下のセルに次の数式を入力します。

    = A23 + 7

  3. このセルを必要なだけ下にコピーします。

それでおしまい。

0
mhoran_psprep