SELECT
說明
從工作簿範圍、定義的名稱或 Workday 報告中選取資料。SELECT 函數類似於 SQL SELECT 陳述式。編寫 SELECT 陳述式的主要規則如下︰ 在 Select 陳述式中參照的資料必須具有標頭名稱。請在 Select 陳述式前後加上雙引號。字串加上單引號。如果您參照的欄標題或表格名稱包含空格或特殊字元,請加上反引號。參數請使用問號。如果 SELECT 公式未在 30 分鐘內完成計算,則會傳回 #ERROR。SELECT 最多可處理 500 萬列,但由於 SELECT 執行匯總的原因,已處理的列數可能與可傳回的列數不完全相符。若要查看 SELECT 函數的工作範例,請在 Community 中尋找「Worksheets 函數範例工作簿」頁面,或將此連結貼到瀏覽器中︰https://community.workday.com/node/408872。
請記住,SELECT 函數並不能取代資料精靈。
語法
SELECT(
select_statement
, [ parameter
], ...) - select_statement︰SELECT 陳述式。此陳述式與 SQL select 陳述式類似。請將 Select 陳述式放在雙引號中。基本格式為︰"SELECT column1, [column2], ... FROM table"其中column是要傳回的資料,且table是可供選取的資料來源。您可以在 SELECT 陳述式中內嵌函數,例如 COUNT、AVG、SUM、LIMIT 等。SELECT 支援的完整函數清單如下。對 SELECT 公式中的日期值執行運算時,請記住 Worksheets 的運作方式與 SQL 語法不同。Worksheets 計算會將日期視為序號。範例︰日期 2023 年 3 月 20 日表示為序號 45005。此外,SQL 會自動轉換字串日期以進行計算,但 Worksheets 不會。如果欄名稱中存在字串from或Where,則您必須將其加上引號,因為 from 和 Where 是 SQL 中的保留字。在陳述式的 FROM 子句中,您可以使用下列值︰
- Workday 報告
- 您指定為引數的參數。
- parameter︰陳述式參數。
範例
我們將使用此表格來顯示一些簡單的範例︰
header1 | header2 | header3 |
|---|---|---|
1 | a | 紅色 |
2 | b | 橙色 |
3 | c | 橙色 |
4 | d | 紅色 |
5 | e | 紅色 |
公式︰
=SELECT("SELECT header1,header3 FROM ?WHERE header3 = ?",A1:C6,"red")
有以下結果︰
header1 | header3 |
|---|---|
1 | 紅色 |
4 | 紅色 |
5 | 紅色 |
自動重新計算和參數引數
我們建議使用函數的參數引數來參照資料; Worksheets 會將這些參照視為資料依存關係,因此當您變更參照儲存格中的資料時,SELECT 公式會自動執行。如果您改用 SELECT 陳述式來參照資料,則在資料變更時不會自動重新執行公式,即使選取資料 > 重新計算也不會使公式再次執行。在以下公式中,我們使用形參引數來參照資料。如果範圍 A1:C6 中的資料變更,Worksheets 會自動重新計算並更新結果︰
=SELECT("SELECT header1,header3 FROM ?",A1:C6)
定義的名稱
︰。在此範例中,區域被指定為 all_employee 的定義名稱︰- =SELECT("SELECT employeeName FROM ?", all_employees)
欄、列或範圍
︰。您可以參照同一個工作表、不同的工作表或另一個工作簿中的欄、列或區域。如果未指定工作表,則範圍必須在目前的工作表上。- =SELECT("SELECT employeeName FROM ?",$A:$G)
- =SELECT("SELECT employeeName FROM ?",'All Employees Sheet'!$A:$G)
- =SELECT("SELECT employeeName FROM ?",All_Employees_Sheet!$A:$G)
- =SELECT("SELECT employeeName FROM ?", !'Other Workbook Name'!'All Employees Sheet'!A:G)
更多範例和結果
公式 | 結果 |
|---|---|
SELECT("SELECT employeeID, employeeName FROM ?”, AllEmployeesSheet!$A:$G) | 傳回名為 AllEmployeesSheet 的工作表 A 至 G 欄的正職員工 ID 和正職員工名稱。 |
SELECT("SELECT COUNT(employeeLastName) FROM ?”, AllEmployeesSheet) | 傳回名為 AllEmployeesSheet 的工作表中的 employeeLastName 欄的列數。 |
SELECT("SELECT employeeFirstName, employeeLastName, employeeRating FROM ?ORDER BY employeeRating DESC LIMIT 3", AllEmployeesSheet!$A:$G) | 傳回名字、姓氏和 3 個最高評等正職員工的評等。 |
Workday 報告
。查詢 Workday 報告中的資料。- =SELECT("SELECT employeeName FROM WorkdayReports.AllEmployees") ,其中報告名稱為 AllEmployees。
- =SELECT("SELECT employeeName FROM WorkdayReports.`All Employees`") ,其中報告名稱為 All Employees。
- =SELECT("SELECT * from WorkdayReports.`All Employees`") 會從報告中選取所有列。
附註
- 我們建議您使用函數的參數區段來參照資料; Worksheets 會將這些參照視為資料依存關係,因此只要您選取 ,就會執行 SELECT 公式。您在公式的 SELECT 陳述式部分參照的資料不被視為相依資料,因此即使基礎資料已變更,選取 也不會導致公式再次執行。
- 此函數適用於陣列公式。
SELECT 函數︰常數
TRUE | CURRENT_DATE |
FALSE | CURRENT_TIME |
NULL | CURRENT_TIMESTAMP |
SELECT 函數︰運算子和邏輯
UNION | 聯結 | INTERSECT | 內部聯結 |
全部合併 | 左聯結 | EXCEPT | BETWEEN |
NOT BETWEEN | IN | * | <= |
|| (字串串連) | NOT IN | / | <> |
% (模數) | () (括號) | + | != |
<< (位移位左) | IF | - (減號) | >= |
>> (位元右移) | + (一元正數) | - (負一元) | ~ (位元反轉) |
EXISTS | ! (邏輯非) | | | LIKE |
不存在 | NOT | < | NOT LIKE |
IS NULL | AND | > | 個案 1
|
IS NOT NULL | OR | = | & |
IFNULL | ISNULL | POW | " |
1
包含 WHEN THEN ELSE END 關鍵字SELECT 函數︰純量、子字串
DAYOFMONTH | YEAR | LOWER | UPPER |
HOUROFDAY | COALESCE | LTRIM | 年初迄今 |
MINUTE | NULLIF | RTRIM | DATETIME YMDHMS |
MONTH | ROUND | SUBSTRING | INSTANCE (ID 和說明) |
第二 | 長度 | TRIM | DATEDIF |
複製 | STUFF | 找出 | INSTR |
SELECT 函數︰數學、財務、統計
ABS | COUNT 個 | LOG10 | Q (季度) |
AVG | 樓層 | MAX | SQRT |
CEIL | 記錄 | MIN | SUM |
LIMIT | ASC | DESC |