CHOOSEROWS Function (LibreOffice Calc)

Lookup & Reference Intermediate LibreOffice Calc Introduced in LibreOffice 7.4
arrays dynamic-arrays lookup reference row-selection data-manipulation

The CHOOSEROWS function returns specific rows from an array or range. It is used for dynamic row extraction, array reshaping, and building flexible filtering and lookup workflows.

Compatibility

What the CHOOSEROWS Function Does

  • Returns selected rows from a range or array
  • Supports multiple row indexes
  • Works with dynamic arrays
  • Useful for filtering, reshaping, and lookup preparation
  • A modern alternative to INDEX‑based row extraction

Syntax

CHOOSEROWS(array; row1; row2; row3; ...)

Arguments

  • array:
    The source range or array.

  • row1, row2, …:
    One or more row numbers to extract (1‑based).

Basic Examples

Extract a single row

=CHOOSEROWS(A1:D10; 3)
→ returns row 3

Extract multiple rows

=CHOOSEROWS(A1:D10; 1; 10)
→ returns rows 1 and 10

Using cell references

=CHOOSEROWS(A1:D10; A12)

Advanced Examples

Reorder rows

=CHOOSEROWS(A1:D10; 10; 1; 5)
→ row 10, row 1, row 5

Combine with FILTER

=CHOOSEROWS(FILTER(A1:D100; A1:A100>0); 1; 5; 10)

Combine with SORTBY

=SORTBY(CHOOSEROWS(A1:D100; 1; 3; 7); 2; -1)

Dynamic selection using MATCH

=CHOOSEROWS(A1:D10; MATCH("Total"; A1:A10; 0))

Extract every second row

=CHOOSEROWS(A1:D20; {1;3;5;7;9})

Use with XLOOKUP to return multiple rows

=XLOOKUP(E1; A1:A100; CHOOSEROWS(A1:D100; 2; 4))

Edge Cases and Behavior Details

CHOOSEROWS is 1‑based

  • Row 1 = first row
  • Row 0 → Err:502
  • Negative indexes → Err:502

Accepts:

  • Ranges
  • Dynamic arrays
  • Array literals

Behavior details

  • Returns a dynamic array
  • Row order is preserved based on the argument order
  • Duplicate row indexes are allowed
  • Out‑of‑range indexes → Err:502

CHOOSEROWS of an error → error propagates

Common Errors and Fixes

Err:502 — Invalid argument

Cause:

  • Row index < 1
  • Row index > number of rows
  • Non-numeric index

Fix:

  • Validate row numbers
  • Use MATCH to generate safe indexes

#VALUE! or #REF! in downstream formulas

Cause:

  • Array size mismatch

Fix:

  • Wrap with IFERROR or validate array dimensions

Best Practices

  • Use CHOOSEROWS for clean, readable row extraction
  • Use INDEX for column‑based extraction
  • Combine with FILTER, SORT, and SORTBY for dynamic pipelines
  • Use MATCH to generate row indexes programmatically
  • Use CHOOSECOLS for column extraction
CHOOSEROWS is perfect for reshaping data — especially when building dynamic dashboards, lookup tables, or filtered views.

Related Patterns and Alternatives

  • CHOOSECOLS — extract columns
  • CHOOSE — select from a list
  • INDEX — flexible row/column extraction
  • FILTER — row filtering
  • SORT / SORTBY — ordering arrays
  • XLOOKUP — modern lookup with array returns

By mastering CHOOSEROWS, you can build powerful, dynamic data‑manipulation workflows in LibreOffice Calc.

Copyright 2026. All rights reserved.