ピボットテーブル

Headless 対応

ピボットテーブルは強力なデータ分析ツールで、大量のデータを素早く要約・分析・可視化できます。多様なデータ操作や書式設定オプションをサポートし、ユーザーがデータをより深く理解し活用できるようにします。

概要

データピボットテーブルは一般的に次のような場面で使用されます。

  • データの要約: ピボットテーブルはデータを素早く要約し、全体像の把握に役立ちます。
  • データの分析: ピボットテーブルはデータを分析し、パターンや関連性を見つけるのに役立ちます。
  • データの探索: ピボットテーブルはデータを探索し、規則性やトレンドを発見するのに役立ちます。
  • データの可視化: ピボットテーブルはデータを可視化し、理解を助けます。

ピボットテーブルは通常、以下の要素で構成されます。

  • 行ラベル: データをグループ化するために使用します。
  • 列ラベル: データをグループ化するために使用します。
  • 値: データを集計するために使用します。

ピボットテーブルでは、必要に応じて行ラベル・列ラベル・値を調整し、より深い分析を行えます。

データソース

Univer Sheets では、ピボットテーブルのデータソースはワークシートまたはデータ範囲のいずれかを選択できます。必要に応じて異なるデータソースを選択し、データをより適切に分析できます。 データソースの最初の行をデフォルトの列ラベルとして、残りをデータソースとして扱います。したがって、データソースはできるだけ整理された状態であることが求められ、空の行や列はできるだけ避けるようにしてください。 同じ列のデータについては、ピボットテーブルの機能をより適切にサポートするために、データ型を自動的に認識します。列内のデータ型が不一致の場合、その列のデータ型は文字列にデフォルト設定されます。

Univer Sheets では、ピボットテーブルはデータの変更に自動的に対応します。データソースが変更されると、ピボットテーブルは自動的に更新され、データをより適切に分析できるようになります。

フィルター

データピボットテーブルは、行ラベルと列ラベルに対するフィルターをサポートします。さらに、ピボットテーブルの主要な分類・集計レイアウトには参加しないものの、データの絞り込みに利用できるフィルターフィールドも提供します。

データピボットテーブルは 2 種類のフィルター方法をサポートします。

  • ラベル フィルター: 現在のラベル次元の項目に直接適用されます。例えば、都道府県次元で特定の都道府県を除外できます。
  • 値フィルター: 値の次元を指定し、その値フィールドの集計結果に対してフィルターします。例えば、売上が 1000 未満のデータを除外できます。

並べ替え

データピボットテーブルの並べ替えは行/列フィールドにのみ有効で、昇順・降順をサポートします。ソートは localCompare メソッドを使用します。将来的には、ピンインソートなど、より多くのソート方法をサポートする予定です。

データピボットテーブルは 2 種類の並べ替え方法をサポートします。

  • ラベル ソート: 現在のラベル次元の項目に直接適用されます。例えば、都道府県名で並べ替えることができます。
  • 値ソート: 値の次元を指定し、その値フィールドの集計結果で並べ替えます。例えば、売上金額で並べ替えることができます。

集計

データピボットテーブルは、Excel がサポートする 11 種類の集計方法(合計、件数、データ件数、平均、最大、最小、階乗、標準偏差、分散、母標準偏差、母分散)をサポートします。

データピボットテーブルは複数の値次元をサポートし、値次元のエリア(値の位置)や値の順序(値のインデックス)をカスタマイズできます。

これは複雑なレイアウトロジックであるため、現時点では表ビューのみをサポートします。今後、要望に応じてより多くのビューをサポートする予定です。

ドリルダウン

ドリルダウンとは、ピボットテーブルの値エリア内のセルをダブルクリックして、そのセルに対応する詳細データを確認できる機能を指します。例えば、ピボットテーブル内のセルをクリックして、その裏にある元データを追跡できます。

グループ化

Univer Sheets は日付、数値、手動のグループ化をサポートしています。

  • 日付のグループ化:派生日付フィールドには setDateGroupType を使用します。元の日付ラベルフィールドを暦の単位でグループ化する場合は、setDateGroupingMode で univerAPI.Enum.PivotDateGroupingMode.ExcelLike を設定してから setExcelDateGroup を呼び出します。
  • 数値のグループ化:ラベルフィールド ID と区間設定を setNumberGroup に渡します。
  • 手動のグループ化:元のソースフィールド ID と型付きメンバーのグループを setManualGroups に渡します。各グループには 2 つ以上のメンバーが必要です。空の配列を渡すと、そのフィールドの手動グループをすべて削除できます。

スライサーとタイムラインを使うと、テーブルやピボットレポートを対話的に絞り込めます。

プラグイン モード

インストール

Shell
pnpm add @univerjs-pro/sheets-pivot @univerjs-pro/sheets-pivot-ui

使い方

TypeScript
import { UniverSheetsPivotTablePlugin } from '@univerjs-pro/sheets-pivot'import { UniverSheetsPivotTableUIPlugin } from '@univerjs-pro/sheets-pivot-ui'import SheetsPivotTableUIJaJP from '@univerjs-pro/sheets-pivot-ui/locale/ja-JP'import SheetsPivotTableJaJP from '@univerjs-pro/sheets-pivot/locale/ja-JP'import { LocaleType, mergeLocales, Univer } from '@univerjs/core'import '@univerjs-pro/sheets-pivot-ui/lib/index.css'import '@univerjs-pro/sheets-pivot/facade'const univer = new Univer({  locale: LocaleType.JA_JP,  locales: {    [LocaleType.JA_JP]: mergeLocales(      SheetsPivotTableJaJP,       SheetsPivotTableUIJaJP,     ),  },})

プラグインの登録

ピボットテーブルプラグインは、用途に応じて柔軟に登録でき、さまざまな計算ニーズに対応する 2 つのモードを提供します。

メインプロセスのみで登録

ピボットテーブルプラグインはメインプロセスのみに登録できます。このモードは軽量なタスクや単純な操作に適しており、追加のプラグイン設定は不要です。開発者は UniverSheetsPivotTablePlugin をインポートするだけで利用できます。

TypeScript
univer.registerPlugin(UniverSheetsPivotTablePlugin)univer.registerPlugin(UniverSheetsPivotTableUIPlugin)

メイン/ワーカー両方で登録

高いパフォーマンスが求められるシナリオでは、ピボットテーブルプラグインをメインプロセスとワーカー プロセスの両方に登録できます。これにより、マルチスレッド アーキテクチャを活用してデータ分配と計算処理を効率化し、メインプロセスの負荷を大幅に軽減して全体のパフォーマンスを向上させます。

このモードでは、メインプロセスが主にデータ分配・同期・レンダリングを担当し、ワーカー プロセスが複雑な計算タスクに専念します。このモードを実装するには、登録時に設定を微調整する必要があります。

TypeScript
// main process file// notExecuteFormula を true に設定すると、メインプロセスは計算を行いません。データ分配・同期・レンダリングのみを担当します。univer.registerPlugin(UniverSheetsPivotTablePlugin, { notExecuteFormula: true })univer.registerPlugin(UniverSheetsPivotTableUIPlugin)// web worker process file// notExecuteFormula を false に設定すると、ワーカー プロセスが計算を実行します。univer.registerPlugin(UniverSheetsPivotTablePlugin, { notExecuteFormula: false })

Univer の商用ライセンスをお持ちの場合は、設定方法について クライアントでのライセンス を参照してください。

プラグインと設定

TypeScript
import type { DateSystem } from '@univerjs/core'interface IUniverSheetsPivotConfig {  /**   * 単一のピボットテーブル フィールドで表示できる最大項目数を定義します。   * @default 1000   */  maxLimitItemCount?: number  /**   * 日付フィールドを行または列に追加するときに、自動的に日付をグループ化します。   * @default true   */  autoDateGroup?: boolean  /**   * 日付のグループ化に使用する日付システム。   * @default DateSystem.Date1900   */  dateSystem?: DateSystem}

モバイル対応

まずモバイルエディターを設定します。このページのプラグインモードの初期化コードで、以下のデスクトップ登録を同じパッケージのモバイル版に置き換え、文書を開く前に完了してください。モデル、スタイル、言語ファイル、Facade は維持し、両方を同時に登録しないでください。

パッケージデスクトップの登録モバイルの登録
@univerjs-pro/sheets-pivot-uiUniverSheetsPivotTableUIPluginUniverSheetsPivotTableMobileUIPlugin

プリセット モード

ピボットテーブル機能は @univerjs/preset-sheets-advanced のプリセットに含まれており、描画やウォーターマークなどの高度な機能も含まれます。

インストール

@univerjs/preset-sheets-advanced の UniverSheetsAdvancedPreset は実行時に UniverSheetsDrawingPreset に依存します。先に @univerjs/preset-sheets-drawing をインストールしてください。

Shell
pnpm add @univerjs/preset-sheets-drawing @univerjs/preset-sheets-advanced

使い方

TypeScript
import { UniverSheetsAdvancedPreset } from '@univerjs/preset-sheets-advanced'import UniverPresetSheetsAdvancedJaJP from '@univerjs/preset-sheets-advanced/locales/ja-JP'import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'import UniverPresetSheetsCoreJaJP from '@univerjs/preset-sheets-core/locales/ja-JP'import { UniverSheetsDrawingPreset } from '@univerjs/preset-sheets-drawing'import UniverPresetSheetsDrawingJaJP from '@univerjs/preset-sheets-drawing/locales/ja-JP'import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'import '@univerjs/preset-sheets-core/lib/index.css'import '@univerjs/preset-sheets-drawing/lib/index.css'import '@univerjs/preset-sheets-advanced/lib/index.css'const { univerAPI } = createUniver({  locale: LocaleType.JA_JP,  locales: {    [LocaleType.JA_JP]: mergeLocales(      UniverPresetSheetsCoreJaJP,      UniverPresetSheetsDrawingJaJP,       UniverPresetSheetsAdvancedJaJP,     ),  },  presets: [    UniverSheetsCorePreset(),    UniverSheetsDrawingPreset(),     UniverSheetsAdvancedPreset(),   ],})

Univer の商用ライセンスをお持ちの場合は、設定方法について クライアントでのライセンス を参照してください。

プリセットと設定

TypeScript
interface IUniverSheetsAdvancedPresetConfig {  pivot?: Pick<IUniverSheetsPivotConfig, 'maxLimitItemCount'>}interface IUniverSheetsPivotConfig {  /**   * 単一のピボットテーブル フィールドで表示できる最大項目数を定義します。   * @default 1000   */  maxLimitItemCount?: number}

Facade API

完全な Facade API の型定義は FacadeAPI を参照してください。

インポート

プラグインモード注意

Facade パッケージの手動 import が必要なのはプラグインモードのみです。プリセットモードには対応する Facade パッケージが内蔵されているため、追加の import は不要です。

TypeScript
import '@univerjs-pro/sheets-pivot/facade'

ピボットテーブルの追加

FWorkbook.addPivotTable メソッドはピボットテーブルを追加するために使用され、成功すると FPivotTable インスタンスを返します。

TypeScript
// シート範囲 A1:G9 が空でないことを確認してくださいconst fWorkbook = univerAPI.getActiveWorkbook()const unitId = fWorkbook.getId()const fSheet = fWorkbook.getActiveSheet()const subUnitId = fSheet.getSheetId()const sheetName = fSheet.getSheetName()const sourceInfo = {  unitId,  subUnitId,  sheetName,  range: {    startRow: 0,    startColumn: 0,    endRow: 8,    endColumn: 6,  },}const anchorCellInfo = {  unitId,  subUnitId,  row: 20,  col: 8,}const fPivotTable = await fWorkbook.addPivotTable(sourceInfo, univerAPI.Enum.PositionTypeEnum.Existing, anchorCellInfo)const pivotTableId = fPivotTable.getPivotTableId()// 複数回フィールドを追加しないように制御するフラグlet hasAdded = false// addPivotTable は非同期のため、ピボットテーブル追加後にフィールドを追加できますuniverAPI.addEvent(univerAPI.Event.PivotTableRendered, async (params) => {  if (!hasAdded && params.pivotTableId === pivotTableId) {    hasAdded = true    await fPivotTable.addField(1, univerAPI.Enum.PivotTableFiledAreaEnum.Row, 0)    await fPivotTable.addField(1, univerAPI.Enum.PivotTableFiledAreaEnum.Value, 0)  }})

ピボットテーブルの取得

FWorkbook.getPivotTableByCell メソッドは、アンカーセルからピボットテーブルのインスタンスを取得します。対象セルがピボットテーブル内にある場合、FPivotTable インスタンスを返します。

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const unitId = fWorkbook.getId()const fSheet = fWorkbook.getActiveSheet()const subUnitId = fSheet.getSheetId()// FWorkbook でセルからピボットテーブルを取得const fPivotTable = fWorkbook.getPivotTableByCell(unitId, subUnitId, 0, 8)// FWorksheet でセルからピボットテーブルを取得const pivotTable2 = fSheet.getPivotTableByCell(0, 8)

FPivotTable インスタンスには、ピボットテーブルを操作するためのいくつかのメソッドがあります。

メソッド説明
removeピボットテーブルをインスタンスから削除します
getConfigピボットテーブルの設定(ソース範囲情報、アンカーセル情報、設定)を返します
addFieldピボットテーブルにフィールドを追加します
removeFieldピボットテーブルからフィールドを削除します
updateFieldPositionピボットテーブル内のフィールド位置を更新します
updateValuePosition∑ 値の位置を制御します
setSubtotalTypeフィールドの小計タイプを設定します
setLabelSortフィールドのラベル ソートを設定します
setLabelManualFilterフィールドのラベル フィルターを設定します
renameFieldフィールド名を変更します
setValueFilter値フィルターを設定します
resetピボットテーブルのフィールドをリセットします
setFieldsConfigピボットテーブルのフィールド構成を設定します
getValueFiltersピボットテーブルのすべての値フィルターを取得します

イベントリスナー

完全なイベント型定義は Events を参照してください。

univerAPI.Event.BeforePivotTableAdd イベントは、ピボットテーブルを追加する前にトリガーされます。

TypeScript
const disposable = univerAPI.addEvent(univerAPI.Event.BeforePivotTableAdd, (params) => {  const { positionType, targetCellInfo } = params  if (positionType === univerAPI.Enum.PositionTypeEnum.Existing && targetCellInfo.sheetName === 'Sheet 1') {  // ピボットテーブルの追加操作をキャンセル    params.cancel = true    console.log(`The pivot table can't be added to the sheet ${targetCellInfo.sheetName}`)  }})// イベントリスナーを削除するには `disposable.dispose()` を使用します

univerAPI.Event.PivotTableAdded イベントは、ピボットテーブルを追加した後にトリガーされます。

TypeScript
const disposable = univerAPI.addEvent(univerAPI.Event.PivotTableAdded, (params) => {  const { positionType, targetCellInfo } = params  if (positionType === univerAPI.Enum.PositionTypeEnum.Existing) {    console.log('A pivot table created in an existing sheet')    console.log(`      The target sheet name is ${targetCellInfo.sheetName},      the target row is ${targetCellInfo.row}, the target column is ${targetCellInfo.column}    `)  } else {    console.log('A pivot table created in a new sheet')  }})// イベントリスナーを削除するには `disposable.dispose()` を使用します

univerAPI.Event.BeforePivotTableMove イベントは、ピボットテーブルを移動する前にトリガーされます。

TypeScript
const disposable = univerAPI.addEvent(univerAPI.Event.BeforePivotTableMove, (params) => {  const { pivotTableId, targetCellInfo } = params  if (pivotTableId === 'pivotTable1' && targetCellInfo.sheetName === 'Sheet 1') {  // ピボットテーブルの移動操作をキャンセル    params.cancel = true    console.log(`The pivot table can't be moved to the sheet ${targetCellInfo.sheetName}`)  }})// イベントリスナーを削除するには `disposable.dispose()` を使用します

univerAPI.Event.PivotTableMoved イベントは、ピボットテーブルを移動した後にトリガーされます。

TypeScript
const disposable = univerAPI.addEvent(univerAPI.Event.PivotTableMoved, (params) => {  const { pivotTableId, targetCellInfo, originTargetInfo } = params  if (pivotTableId === 'pivotTable1') {    console.log(`      The pivot table moved from row: ${originTargetInfo.row} & column: ${originTargetInfo.column}      to the sheet ${targetCellInfo.sheetName} row: ${targetCellInfo.row} & column: ${targetCellInfo.column}    `)  }})// イベントリスナーを削除するには `disposable.dispose()` を使用します

univerAPI.Event.PivotTableRendered イベントは、ピボットテーブルをレンダリングした後にトリガーされます。

TypeScript
// import { unionPivotViewRange } from '@univerjs-pro/sheets-pivot';const disposable = univerAPI.addEvent(univerAPI.Event.PivotTableRendered, (params) => {  const { pivotTableId, rangeInfo } = params  console.log(`The pivot table ${pivotTableId} has been rendered`)  if (rangeInfo) {    console.log(unionPivotViewRange(rangeInfo))  }})// イベントリスナーを削除するには `disposable.dispose()` を使用します

univerAPI.Event.PivotTableRemoved イベントは、ピボットテーブルを削除した後にトリガーされます。

TypeScript
const disposable = univerAPI.addEvent(univerAPI.Event.PivotTableRemoved, (params) => {  const { pivotTableId } = params  console.log(`The pivot table ${pivotTableId} has been removed`)})// イベントリスナーを削除するには `disposable.dispose()` を使用します

univerAPI.Event.PivotTableFieldAdded イベントは、ピボットテーブルにフィールドを追加した後にトリガーされます。

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const disposable = univerAPI.addEvent(univerAPI.Event.PivotTableFieldAdded, (params) => {  const { pivotTableId, fieldId, fieldArea, fieldIndex } = params  const pivotTable = fWorkbook.getPivotTableById(pivotTableId)  const fieldSetting = pivotTable.getFieldSetting(fieldId)  console.log(fieldSetting)})// イベントリスナーを削除するには `disposable.dispose()` を使用します

univerAPI.Event.PivotTableFieldRemoved イベントは、ピボットテーブルからフィールドを削除した後にトリガーされます。

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const disposable = univerAPI.addEvent(univerAPI.Event.PivotTableFieldRemoved, (params) => {  const { pivotTableId, fieldId } = params  const pivotTable = fWorkbook.getPivotTableById(pivotTableId)  const fieldSetting = pivotTable.getFieldSetting(fieldId)  console.log(fieldSetting)})// イベントリスナーを削除するには `disposable.dispose()` を使用します

univerAPI.Event.PivotTableFieldMoved イベントは、ピボットテーブル内でフィールドを移動した後にトリガーされます。

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const disposable = univerAPI.addEvent(univerAPI.Event.PivotTableFieldMoved, (params) => {  const { pivotTableId, fieldId, fieldArea, fieldIndex } = params  const pivotTable = fWorkbook.getPivotTableById(pivotTableId)  const fieldSetting = pivotTable.getFieldSetting(fieldId)  console.log(`The source name ${fieldSetting.sourceName} the display name ${fieldSetting.displayName}`)})// イベントリスナーを削除するには `disposable.dispose()` を使用します

univerAPI.Event.PivotTableFieldCollapseChanged イベントは、ピボットテーブルで次元を展開/折りたたみした後にトリガーされます。

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const disposable = univerAPI.addEvent(univerAPI.Event.PivotTableFieldCollapseChanged, (params) => {  const { pivotTableId, fieldId, isCollapsed } = params  const pivotTable = fWorkbook.getPivotTableById(pivotTableId)  const fieldSetting = pivotTable.getFieldSetting(fieldId)  console.log(`The source name ${fieldSetting.sourceName} the display name ${fieldSetting.displayName}`)})// イベントリスナーを削除するには `disposable.dispose()` を使用します

univerAPI.Event.PivotTableFieldFilterChanged イベントは、ピボットテーブルで次元をフィルタリングした後にトリガーされます。

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const disposable = univerAPI.addEvent(univerAPI.Event.PivotTableFieldFilterChanged, (params) => {  const { pivotTableId, fieldId, filter } = params  const pivotTable = fWorkbook.getPivotTableById(pivotTableId)  const fieldSetting = pivotTable.getFieldSetting(fieldId)  console.log(`The Checklist filter value is ${fieldSetting.filterInfo.checklist}`)})// イベントリスナーを削除するには `disposable.dispose()` を使用します

univerAPI.Event.PivotTableFieldSortChanged イベントは、ピボットテーブルで次元を並べ替えた後にトリガーされます。

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const disposable = univerAPI.addEvent(univerAPI.Event.PivotTableFieldSortChanged, (params) => {  const { pivotTableId, fieldId, sort } = params  const pivotTable = fWorkbook.getPivotTableById(pivotTableId)  const fieldSetting = pivotTable.getFieldSetting(fieldId)  console.log(`The sort info is ${fieldSetting.sortInfo}`)})// イベントリスナーを削除するには `disposable.dispose()` を使用します

univerAPI.Event.PivotTableFieldSettingChanged イベントは、ピボットテーブルで次元の設定を変更した後にトリガーされます。

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const disposable = univerAPI.addEvent(univerAPI.Event.PivotTableFieldSettingChanged, (params) => {  const { pivotTableId, fieldId, setting } = params  const pivotTable = fWorkbook.getPivotTableById(pivotTableId)  const fieldSetting = pivotTable.getFieldSetting(fieldId)  console.log(`The source name ${fieldSetting.sourceName} the display name ${fieldSetting.displayName}`)})// イベントリスナーを削除するには `disposable.dispose()` を使用します

univerAPI.Event.PivotTableValuePositionChanged イベントは、ピボットテーブルの値の位置を変更した後にトリガーされます。

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const disposable = univerAPI.addEvent(univerAPI.Event.PivotTableValuePositionChanged, (params) => {  const { pivotTableId, valueId, position } = params  const pivotTable = fWorkbook.getPivotTableById(pivotTableId)  const valueSetting = pivotTable.getValueSetting(valueId)  console.log(`The source name ${valueSetting.sourceName} the display name ${valueSetting.displayName}`)})// イベントリスナーを削除するには `disposable.dispose()` を使用します

値の表示方法

setShowDataAs() で値フィールドを行・列・総計に対する割合や基準項目との差として表示できます。表示上の計算を変更し、元データは置き換えません。getShowDataAs() で設定を取得し、resetShowDataAs() で通常の計算に戻します。

TypeScript
const valueId = fPivotTable.getFieldIdsByArea(  univerAPI.Enum.PivotTableFiledAreaEnum.Value,)[0]if (valueId) {  await fPivotTable.setShowDataAs(valueId, {    type: univerAPI.Enum.PivotShowAsTypeEnum.percentOfGrandTotal,  })  console.log(fPivotTable.getShowDataAs(valueId))}

例の fPivotTable は既存のピボットテーブルです。元データの列や行フィールドではなく、値フィールドの ID を指定します。差分や累計のモードでは、対応する基準フィールドと基準項目の設定も必要です。

ワークシートと一緒にピボットテーブルをコピーする

ピボットプラグインを登録すると、ワークシートの複製時に、そのシート上のピボットテーブルとフィールド設定もコピーされます。各コピーには新しい ID が割り当てられます。データソースがコピー元のシートにある場合、参照先は新しいシートに変更されます。他のシートやブックにある場合は元の参照を維持します。コピーされたピボットテーブルも、シートの複製と一緒に元に戻す・やり直す操作の対象になります。

TypeScript
const workbook = univerAPI.getActiveWorkbook()if (!workbook) throw new Error('No active workbook')const copiedSheet = workbook.duplicateActiveSheet()console.log(copiedSheet.getSheetName())

複数フィルターと日付条件

setOptions({ allowMultipleFilters: true }) により、同じフィールドでメンバー選択、ラベル/日付条件、値フィルターを併用できます。省略または false の場合、異なる種類のフィルターは置き換えられます。競合する種類がある状態で無効にすると、レポートのフィルターがクリアされます。値フィルターは各フィールドに 1 つまでです。

setDateFilter() は dateEqual、dateOlderThan、dateBetween などの固定日付条件を受け取ります。expected にはブックの日付システムの Excel シリアル値を指定し、範囲条件では 2 つの値を渡します。useWholeDay: true は時刻を無視し、省略または false は正確なシリアル値を比較します。ソース列のインデックスではなくレポートのフィールド ID を使用します。以下は前述の fPivotTable とソースの Date 列を使用します。

getDateFilter() は独立した条件のコピーを返し、clearDateFilter() は日付条件だけを解除します。操作は元に戻す処理と共同編集に対応します。有効なスライサーにより互換性のない条件が拒否される場合があるため、戻り値の真偽を確認してください。

TypeScript
if (!fPivotTable) throw new Error('PivotTable not found')await fPivotTable.setOptions({ allowMultipleFilters: true })const dateField = Object.values(fPivotTable.getConfig()?.fieldsConfig.dimension ?? {})  .find((field) => field.sourceName === 'Date')if (!dateField) throw new Error('Add the Date field to the report first')await fPivotTable.setDateFilter(dateField.id, {  operator: univerAPI.Enum.ST_PivotFilterOperatorEnum.dateEqual,  expected: 45293,  useWholeDay: true,})console.log(fPivotTable.getDateFilter(dateField.id))await fPivotTable.clearDateFilter(dateField.id)

GETPIVOTDATA

=GETPIVOTDATA("Sales",$I$1,"Region","East") は、左上が I1 の表示中のピボットテーブルから集計値を取得します。値フィールドには表示名またはソース名を使用できます。アンカーには単一セル参照を指定し、フィールド/項目は対で渡します。

現在はアンカーから下へ最大 200 行、右へ最大 50 列の表示中のレポートを走査し、非表示のソースレコードは検索しません。フィールド、項目、結果が見つからない場合は #REF!、引数の数が不正、またはアンカーが単一セル参照でない場合は #VALUE! を返します。

このガイドはいかがですか?

© 2026 DreamNum Co., Ltd.