反饋已提交
網絡繁忙
報表之間可以透過參數或超級連結等方式來傳遞資料,但是同一個範本中多個 sheet 之間是無法用參數和超級連結進行傳值的。
那如何實現在一個 sheet 中取另外一個 sheet 中某個儲存格的值呢?即如何實現跨 sheet 取數呢?下面將詳細介紹。
如下圖的例子,sheet1 中的訂單成本是由 sheet2 中的儲存格參與計算得來的,填報改變 sheet2 相關資料時,sheet1 訂單成本也會跟着變化。
可以使用公式=sheetname!cellname來實現跨 sheet 取值。例如在 sheet1 某個儲存格中取 sheet2 中 A2 儲存格的值,就可以新增公式:=sheet2!A2
如果 sheetname 中包含短線、底線等特殊字元就需要給 sheetname 加上單引號,公式應寫成:='sheetname'!cellname
當前 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裏的格子
1)首先建立 2 個資料集,ds1 用於 sheet1 中,ds2 用於 sheet2 中,SQL 語句如下:
ds1:SELECT * FROM 訂單
ds2:SELECT * FROM 訂單明細
2)新增一個範本參數,設定預設值為 10001,如下圖所示:
3)在參數面板給這個參數綁定元件,元件設定為下拉框,資料字典設定為訂單表中的訂單ID欄位。
1)建立一個 sheet2,如下圖設計 sheet2 表格,將 ds2 中的欄位拖曳到對應儲存格中,A2 儲存格新增過濾與範本參數完成綁定。
E2 儲存格新增公式SUM(C2*D2),A2 儲存格新增下拉框元件,B2~D2 新增正文元件,如下圖所示:
2)給 sheet2 設定填報屬性,如下圖所示:
1)如下圖設計 sheet1 表格,將 ds1 中的欄位拖曳到對應儲存格中,A2 儲存格新增過濾與範本參數完成綁定。
C2 儲存格新增公式sheet2!E2+B2,即取 sheet2 中 E2 儲存格跟 sheet1 中 B2 儲存格相加。
2)給 sheet1 新增填報屬性,如下圖所示:
儲存範本點選填報預覽,修改 sheet2 中相關儲存格,sheet1 中訂單成本也會隨之改變,效果見 1.1應用場景 中所示。
注:不支援行動端。
點選下載範本:跨sheet聯動填報.cpt
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙