apps-script-utils 2.1.1 Help

deleteColumnsByConditional

function deleteColumnsByConditional( target: GoogleAppsScript.Spreadsheet.Sheet | GoogleAppsScript.Spreadsheet.Range, predicate: ColumnPredicate, options: ColumnConditionalOptions | null | undefined = {} ): number;

Judged against the sheet as read, then deleted from the right edge inwards in consecutive blocks, so shifting positions cannot take the wrong column with them.

Columns are gone for good: clearColumnsByConditional only empties them.

A sheet means its whole data range and whole columns are removed. A range means only the cells inside it: they are deleted and the ones to their right move left, while the rows above and below stay exactly where they are. Either way the predicate is given the position on the sheet, and the refusal to empty a sheet applies to the sheet form, where a sheet must keep a column.

Parameters

Parameter

Type

Description

target

GoogleAppsScript.Spreadsheet.Sheet \| GoogleAppsScript.Spreadsheet.Range

The sheet to work on, or the range to work within: only its cells are read, and only they are removed.

predicate

ColumnPredicate

Receives the column's cells, its one-based position and — when headerColumn is set — the column keyed by the row names. Return true for the columns to act on.

options (optional) = {}

ColumnConditionalOptions \| null \| undefined

headerColumn names the column holding the row names, and keeps that column out of the candidates.

Returns

number — how many were affected.

Throws

Exception

Condition

InvalidSheetException

the first argument is neither a sheet nor a range.

IllegalArgumentException

the predicate is not a function, or the header position is not a positive integer.

Examples

In use

const sheet = SpreadsheetApp.getActiveSheet(); deleteColumnsByConditional(sheet, (values, position, column) => column.internal === true, { headerColumn: 1 });

Within one block

const sheet = SpreadsheetApp.getActiveSheet(); // Only B2:Z100 is read, and only those cells move left. deleteColumnsByConditional(sheet.getRange("B2:Z100"), (values) => values.every((cell) => cell === "") );

See also

Source

src/appsscript/sheet/deleteColumnsByConditional.ts

23 September 2026

This documentation was generated with AI (Claude) from the library's source code.