反饋已提交

網絡繁忙

計算運算子說明

1. 概述

FineReport 中使用函式需要用到很多的運算子,運算子不僅包含很多運算子,還包括一些報表特有的運算子。

2. 運算子類型

運算子用於指定要對公式中的元素執行的計算類型。有預設計算順序,但可以使用括號更改此順序。

FineReport 中有四種不同類型的計算運算子:算術、比較、邏輯、連結。

2.1 算數運算子



執行基本的數學運算,如加、減、乘、除等,在公式中使用以下算術運算子:

算數運算子
說明操作物件範例
+加號 數或儲存格  2+3
-減號數或儲存格 A1-B1  
*乘號數或儲存格A1*2  
 / 除號數或儲存格A3/3  
%取餘,求餘數。除數需要為整數數或儲存格5%2為1  
^乘方數或儲存格
3 ^ 2=9

2.2 比較運算子

可以使用下列運算子比較兩個值。使用這些運算子比較兩個值時,結果為邏輯值 TRUE 或 FALSE。

比較運算子說明操作物件範例
==等於  數或變數  A==2  
!=不等於 數或變數 A!=null   即 A 不為空值
>大於 數或變數或儲存格 3>2 
<小於 數或變數或儲存格 A1<2 
>= 大於等於 數或變數或儲存格 A1>=2 
<= 小於等於 數或變數或儲存格 A1<=2 

2.3 邏輯運算子

邏輯運算子用法與 AND 和 OR 同理。

邏輯運算子說明操作物件範例
&&條件與,需要兩個運算元的值都是 true 時,才取值true條件

銷售額>=10&&銷售人數>=2

即如果銷售額和銷售人數同時滿足指定條件則傳回 true

||條件或,只要兩個運算元中有一個是 true 取值就為 true條件

銷售額>=10||銷售人數>=2

即如果銷售額和銷售人數滿足任一指定條件則傳回 true

!取非,即取條件的反面  條件!A,如果 A 是 true,!A 是 false  

2.4 連結運算子

可以使用 + 運算子對正文字元進行合併。

例如:將正文欄位「abc」和「def」連接在一起,當然可以使用 CONCATENATE,但更簡單的方案是直接使用「+」,如下圖所示:



3. 其他運算子

運算子
說明操作物件範例
:用於取一段連續範圍的儲存格 儲存格 如 A1:B3 即取 A1 到 B3 這個儲存格集合 
&取儲存格所在行列  儲存格

&A2

獲取儲存格 A2 擴展出來的每個資料的位置

. 引用物件或方法物件或方法 

ds1.select(銷售員)

資料集 ds1 取出內建 FRDemo 資料庫中的「銷量」表,傳回資料集 ds1 銷售員列中的所有值。

詳細使用請參見:資料集函式概述 

$參數引用符或絕對定位 參數或絕對定位 

層次座標專用,詳情參見:條件匯總

列序號 列 

ds1.select(#1)

即取資料集第一欄資料(注:資料表中的第一欄而不是放在報表儲存格第一欄。

${}巨集定義 參數 

如在 SQL 中SELECT * FROM 銷量 ${"where 地區='華東'"},會先計算出 ${} 裏面的值,然後連接出完整的SQL 語句

該範例 SQL其實就是 SELECT * FROM 銷量 where 地區='華東'

其他巨集定義可參考:計算格式 3.2.1 節

Cell[]層次座標運算子 儲存格 

A2[A1:-1]

詳情參見:層次座標概念 

$$$表示當前儲存格的值即當前值 有資料的儲存格 

if($$$=0,"",$$$)

 表示如果當前值為 0 則顯示空,否則顯示為當前值 

引用“”,值即為 儲存格 如 " 表示引用 " 號 
 換行符 字串 如字串 aabb,希望 bb 換行顯示,則填寫 aa bb 
 [,] 定義陣列陣列

例如:=indexofarray(["a","b","c","d"],3)

獲取陣列中第三個位置的資料即回傳值為 c

詳情參見:陣列函式概述

""定義字串字串
()優先計算儲存格
^乘方儲存格/陣列
~

FVS視覺化看板引用表格資料

決策報表引用表格資料

儲存格詳情參見:FVS獲取表格資料 、決策報表資料源
!跨sheet引用儲存格
詳情參見:圖表跨sheet引用儲存格資料
{}過濾儲存格/列詳情參見:條件計數
{儲存格}獲取當前頁儲存格資料
儲存格

例如 {A2}

COUNT({A2}),則表示計算當前頁資料行數:

4. 公式運算的次序

在某些情況下,執行計算的順序可能會影響公式的回傳值,因此,必須瞭解如何確定順序以及如何更改順序以獲取所需結果。



4.1 運算子優先

如果一個公式中有若干個運算子,FineBI 將按下表中的次序進行計算。 如果一個公式中的若干個運算子具有相同的優先順序(例如,如果一個公式中既有乘號又有除號),則 FineBI 將按照以下方向計算各運算子。

優先運算子含義使用形式結合方向
1

-

負號

-運算式

右到左

2^乘方運算式^運算式

左到右

3*運算式*運算式
/運算式/運算式
%取餘運算式%運算式
4+運算式+運算式
-運算式-運算式
5>大於運算式>運算式
<小於運算式<運算式
>=大於等於運算式>=運算式
<=小於等於運算式>=運算式
6=、==等於

運算式=運算式

運算式==運算式

!=不等於運算式!=運算式
7&&邏輯與運算式&&運算式
8||邏輯或運算式||運算式

3.2 使用括號計算方式

若要更改計算的順序,需要將公式中要先計算的部分用括號括起來。 

例如,下面的公式生成 11,因為在加法之前計算乘法。 該公式先將 2 與 3 相乘,然後再將 1、4 與結果相加。

=1+2*3+4

但是,如果用括號對該文法進行更改,則會先將 1 與 2 相加在一起,然後再用結果乘以 3 ,再加上 4 得到 13。

=(1+2)*3+4


附件列表


主題: 報表專題
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

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

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

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙