Contact

Zoho Sheet BYROW Function: Row Totals, Maxima and LAMBDA Checks

Spreadsheet Intermediate Zoho Sheet

Apply LAMBDA by row in Zoho Sheet, with complete numeric inputs, spill layouts, manual controls, changed-cell tests and row-spread examples.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

BYROW applies a calculation to each input row and returns the row results vertically. With three daily channel counts on each row, one formula can produce seven daily totals while leaving the original 7-by-3 input grid intact.

Availability and version history

  • Introduced: Named in the fifteen-function launch linked from Zoho’s March 2023 release history; no numbered cloud release is given.
  • Availability: Listed in the current Zoho Sheet function reference; no final supported-version endpoint is documented.
  • Scope: Zoho Sheet web-service documentation. Individual mobile, desktop/offline and imported-workbook behavior remains separately unverified.
  • Checked: October 14, 2026, against the official BYROW entry. Outputs were independently calculated; no native Zoho Sheet execution was performed.

Syntax and the meaning of the parameter

BYROW(array; LAMBDA(row; calculation))

The official BYROW entry uses SUM and MAX examples. The LAMBDA parameter represents the current row’s values. The word row is a chosen parameter name, not a worksheet row number. LAMBDA(values;SUM(values)) expresses the same sum operation with a different local name.

Keep one numeric result per row in these examples. The short reference does not define every multiple-result, incorrect-arity or nested-array case. LAMBDA explains direct parameterized calculations; BYCOL instead groups the input by column.

Build the seven-day numeric fixture

Create RowTotals, with room through column O and row 10. Put the three channel headings in A1:C1 and enter the numbers below in A2:C8. They are seven days of counts in the same unit; zero is an observed count, not a missing record.

Worksheet row A: Channel 1 B: Channel 2 C: Channel 3
2 12 8 10
3 5 15 10
4 0 6 9
5 20 10 5
6 8 8 8
7 2 4 6
8 9 3 12

Keep D and L empty as separators. Reserve E2:E8, I2:I8 and M2:M8 for three array results. Put headings outside them in E1, F1, G1, I1, J1, K1, M1, N1 and O1.

Zoho’s dynamic-array instructions describe entering the formula once in its anchor cell and pressing Enter. Leave its entire result area empty. Do not fill the anchor formula into the other output cells. An obstruction produces the documented #SPILL! error. The separate manual checks below use ordinary fill operations outside those result areas.

Enter these three anchor formulas separately:

E2: =BYROW(A2:C8;LAMBDA(row;SUM(row)))
I2: =BYROW(A2:C8;LAMBDA(row;MAX(row)))
M2: =BYROW(A2:B8;LAMBDA(values;MAX(values)))

The first and third follow the two formula patterns in Zoho’s entry. The inputs here are fully specified independent practice data, not an assumed copy of the embedded vendor workbook.

Enter F2 =SUM(A2:C2), G2 =E2-F2, J2 =MAX(A2:C2), K2 =I2-J2, N2 =MAX(A2:B2) and O2 =M2-N2. Fill each manual/check column down through row 8. Do not fill E, I or M.

Row E/F: All-channel total I/J: All-channel maximum M/N: First-two maximum
2 30 12 12
3 30 15 15
4 15 9 6
5 35 20 20
6 24 8 8
7 12 6 4
8 24 12 9

G, K and O should all be zero. Rows 4, 7 and 8 expose the effect of excluding Channel 3. Changing the parameter’s name did not remove that channel; changing the input range did.

Change one value and move the input block

Duplicate RowTotals as ChangedDay, then change only B4 from 6 to 16. E4/F4 become 25, I4/J4 16, and M4/N4 16. The three difference cells in row 4 remain zero; every other result row stays unchanged.

For a separate location control, create OffsetRows with room through G10. Copy only RowTotals!A1:C8 into B3:D10, so the numbers occupy B4:D10. Leave F4:F10 empty. Put =BYROW(B4:D10;LAMBDA(values;SUM(values))) in F4. Enter =SUM(B4:D4) in G4 and fill through G10. Both columns give 30,30,15,35,24,12,24. The first result aligns with the first selected input row even though that row now starts at worksheet row 4.

Do not include the text headings in the numeric range. The output does not carry source headings or record labels automatically.

Advanced: row spread and a transparent mean

Create RowSpread with room through L9. Copy only the original numeric A1:C8 block into the same cells. Keep E2:E8 and I2:I8 empty. Enter:

E2: =BYROW(A2:C8;LAMBDA(values;MAX(values)-MIN(values)))
I2: =BYROW(A2:C8;LAMBDA(values;SUM(values)/3))
F2: =MAX(A2:C2)-MIN(A2:C2)
G2: =E2-F2
J2: =SUM(A2:C2)/3
K2: =I2-J2

Fill only F, G, J and K through row 8. The spreads in E/F are 4,10,9,15,0,4,9. The means in I/J are 10,10,5,11.6666666667,8,4,8, with the repeating value displayed to ten decimal places. G and K are zero in the mathematical model. MIN supplies the lower endpoint; MAX supplies the upper one.

The divisor 3 is justified by exactly three supplied numeric observations per row. It is not a general rule for incomplete or mixed-type records. A spread of zero in row 6 means equal readings of 8, not no activity.

In L2 enter =SUM(A2:C8), L3 =SUM(I2:I8)/7 and L4 =L2/21. Expected results are 170, 170/21 ≈ 8.0952380952, and the same 170/21. Equal row sizes make the mean of these seven row means agree with the overall mean. That agreement must not be assumed for groups with different numbers of observations.

Errors and practical boundaries

The function entry lists #NUM! for an oversized array without giving a numerical size limit. It also lists invalid-name, invalid-type and invalid-reference errors. It does not fully specify every embedded blank, text, error or empty-range case; this guide keeps the selected data numeric.

A wrong total can come from selecting the wrong columns even when the formula is valid. Compare a manual row calculation and inspect the input boundary before changing LAMBDA. These formulas use the reference’s semicolon notation; follow the editor’s locale syntax when it differs. Imported formulas, nested arrays and native spill behavior remain outside the verification scope above.