反饋已提交

網絡繁忙

跨sheet聯動填報

1. 概述

1.1 應用場景

報表之間可以透過參數或超級連結等方式來傳遞資料,但是同一個範本中多個 sheet 之間是無法用參數和超級連結進行傳值的。

那如何實現在一個 sheet 中取另外一個 sheet 中某個儲存格的值呢?即如何實現跨 sheet 取數呢?下面將詳細介紹。

如下圖的例子,sheet1 中的訂單成本是由 sheet2 中的儲存格參與計算得來的,填報改變 sheet2 相關資料時,sheet1 訂單成本也會跟着變化。

1.2 實現思路

可以使用公式=sheetname!cellname來實現跨 sheet 取值。例如在 sheet1 某個儲存格中取 sheet2 中 A2 儲存格的值,就可以新增公式:=sheet2!A2

如果 sheetname 中包含短線、底線等特殊字元就需要給 sheetname 加上單引號,公式應寫成:='sheetname'!cellname

1.3 注意事項

當前 sheet 計算邏輯:
1)sheet 內計算邏輯, 從左到右從上到下。
2)sheet 間計算邏輯, 從左到右, 如果有引用先計算引用。

問題描述:

循環跨sheet取數可能會出現無法取數的情況,例如:sheet1 進行載入,先計算C1,C1引用的 sheet2,那現在計算中斷,計算 sheet2,sheet2 先計算 D1,引用到了 sheet1 的 C2 和 C3。sheet1 的 C2 有值,C3 是引用的 sheet3,但這個時候沒有去觸發 sheet3 的計算,也就是 sheet1 引用 sheet2 觸發了 sheet2 的計算,但是後面 sheet1 引用 sheet3 沒有觸發 sheet3 的載入,引用別的 sheet 觸發該 sheet 的計算只發生了一次。C3沒有觸發 sheet3 的計算,就傳回了空。

解決思路:

把一些需要被依賴的儲存格統一放到一個sheet中,其他sheet都來引用這個sheet裏的格子

2. 範例

2.1 準備資料

1)首先建立 2 個資料集,ds1 用於 sheet1 中,ds2 用於 sheet2 中,SQL 語句如下:

  • ds1:SELECT * FROM 訂單

  • ds2:SELECT * FROM 訂單明細

2)新增一個範本參數,設定預設值為 10001,如下圖所示:

3)在參數面板給這個參數綁定元件,元件設定為下拉框,資料字典設定為訂單表中的訂單ID欄位。

2.2 準備sheet2

1)建立一個 sheet2,如下圖設計 sheet2 表格,將 ds2 中的欄位拖曳到對應儲存格中,A2 儲存格新增過濾與範本參數完成綁定。

     E2 儲存格新增公式SUM(C2*D2),A2 儲存格新增下拉框元件,B2~D2 新增正文元件,如下圖所示:

2)給 sheet2 設定填報屬性,如下圖所示:

2.3 實現跨sheet聯動

1)如下圖設計 sheet1 表格,將 ds1 中的欄位拖曳到對應儲存格中,A2 儲存格新增過濾與範本參數完成綁定。

     C2 儲存格新增公式sheet2!E2+B2,即取 sheet2 中 E2 儲存格跟 sheet1 中 B2 儲存格相加。

2)給 sheet1 新增填報屬性,如下圖所示:

2.4 效果預覽

儲存範本點選填報預覽,修改 sheet2 中相關儲存格,sheet1 中訂單成本也會隨之改變,效果見 1.1應用場景 中所示。

注:不支援行動端。

3. 範本下載

點選下載範本:跨sheet聯動填報.cpt

附件列表


主題: 填報應用
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉