Stack limited date ranges with VSTACK
Some SheetsFinance functions cap the date range they can return in a single call. When you need a longer history, split the range into multiple calls and stack the results vertically with VSTACK.
Which functions have date limits
Time-series and technicals — High-frequency intervals such as 5-minute or 1-minute data are limited to a fixed number of trading days per call. Lower-frequency intervals such as daily or weekly are less restrictive, but very long ranges can still hit limits.
Calendars and events —
SF_CALENDAR,SF_DIVIDEND, and earnings-related calls have a maximum 90-day window between start and end dates. Larger ranges are truncated.
How VSTACK works
VSTACK joins two or more arrays into one continuous column. Each stacked call must return the same columns in the same order, otherwise the result will be misaligned.
Example: long-range 5-minute technicals
5-minute RSI is limited to roughly one trading week per call. To get a full month, stack one week at a time.
=VSTACK(
SF_TECHNICAL("AAPL", "14rsi", "5m", "2024-11-01", "2024-11-07"),
SF_TECHNICAL("AAPL", "14rsi", "5m", "2024-11-08", "2024-11-14"),
SF_TECHNICAL("AAPL", "14rsi", "5m", "2024-11-15", "2024-11-21")
)Example: Intra-day time series beyond a single limit
1-minute intra-day time series data is limited to 3 trading days so stack to extend the total range.
=VSTACK(
SF_TIMESERIES("AAPL", "2026-06-28", "2026-06-31", "1min", "close&date"),
SF_TIMESERIES("AAPL", "2026-06-24", "2026-06-27", "1min", "close&date")
)Example: earnings calendar across multiple quarters
SF_CALENDAR also has a 90-day range cap. Stack quarterly windows to cover a full year.
=VSTACK(
SF_CALENDAR("earnings", "2024-01-01", "2024-03-31"),
SF_CALENDAR("earnings", "2024-04-01", "2024-06-30"),
SF_CALENDAR("earnings", "2024-07-01", "2024-09-30"),
SF_CALENDAR("earnings", "2024-10-01", "2024-12-31")
)Keeping headers clean
Use the "NH" option on every call except the first. That removes the duplicate header rows from the second, third, and subsequent calls so the final table has only one header at the top.
=VSTACK(
SF_DIVIDEND("AAPL", "2024-01-01", "2024-03-31"),
SF_DIVIDEND("AAPL", "2024-04-01", "2024-06-30", "", "NH"),
SF_DIVIDEND("AAPL", "2024-07-01", "2024-09-30", "", "NH")
)Automating the split with helper cells
Rather than hard-coding every date range, list start and end dates in two columns and reference them.
=VSTACK(
SF_TECHNICAL("AAPL", "14rsi", "5m", A1, B1),
SF_TECHNICAL("AAPL", "14rsi", "5m", A2, B2),
SF_TECHNICAL("AAPL", "14rsi", "5m", A3, B3)
)Then fill A1:B3 with the ranges you need. This makes the formula easier to extend and adjust.
What is next
For single-cell outputs from multi-row functions, see Get a single value from a multi-row function. For reducing quota by batching symbols, read Batch symbols to reduce formula calls.