ฟังก์ชันสตริง

บทความนี้จะอธิบายฟังก์ชันสตริงและการใช้งานใน Tableau และจะสาธิตวิธีสร้างการคำนวณสตริงโดยใช้ตัวอย่าง

ทำไมจึงควรใช้ฟังก์ชันสตริง

ฟังก์ชันสตริงทำให้คุณสามารถจัดการข้อมูลสตริงได้ (เช่น ข้อมูลที่สร้างจากข้อความ) Tableau ใช้ไลบรารี International Components for Unicode (ICU) ปัจจุบันเมื่อทำการเปรียบเทียบสตริง วิธีเรียงและเปรียบเทียบสตริงจะอิงตามภาษาและรูปแบบภาษา และสามารถเปลี่ยนการแสดงเป็นภาพได้เนื่องจาก ICU จะอัปเดตอย่างต่อเนื่องเพื่อให้ได้การสนับสนุนภาษาที่ดีขึ้น

ตัวอย่างเช่น คุณอาจมีฟิลด์ที่มีชื่อและนามสกุลของลูกค้าทั้งหมดของคุณ หนึ่งในสมาชิกอาจเป็น: Jane Johnson คุณสามารถดึงนามสกุลจากลูกค้าทั้งหมดของคุณไปยังฟิลด์ใหม่ได้โดยใช้ฟังก์ชันสตริง

การคำนวณอาจมีลักษณะดังนี้:

SPLIT([Customer Name], ' ', 2)

ดังนั้น SPLIT('Jane Johnson' , ' ', 2) = 'Johnson’

ฟังก์ชันสตริงที่มีอยู่ใน Tableau

ASCII

ไวยากรณ์ASCII(string)
เอาต์พุตหมายเลข
คำนิยามแสดงรหัส ASCII สำหรับอักขระตัวแรกของ <string>
ตัวอย่าง
ASCII('A') = 65
หมายเหตุนี่คือค่าผกผันของฟังก์ชัน CHAR

CHAR

ไวยากรณ์CHAR(number)
เอาต์พุตสตริง
คำนิยามแสดงอักขระที่เข้ารหัสด้วยรหัส ASCII <number>
ตัวอย่าง
CHAR(65) = 'A'
หมายเหตุนี่คือค่าผกผันของฟังก์ชัน ASCII

CONTAINS

ไวยากรณ์CONTAINS(string, substring)
เอาต์พุตบูลีน
คำนิยามแสดงค่า True หากสตริงที่กำหนดมีสตริงย่อยที่ระบุ
ตัวอย่าง
CONTAINS("Calculation", "alcu") = true
หมายเหตุดูเพิ่มเติมที่ฟังก์ชันเชิงตรรกะ(ลิงก์จะเปิดในหน้าต่างใหม่) IN รวมถึง RegEx ที่รองรับในเอกสารประกอบฟังก์ชันเพิ่มเติม(ลิงก์จะเปิดในหน้าต่างใหม่)

ENDSWITH

ไวยากรณ์ENDSWITH(string, substring)
เอาต์พุตบูลีน
คำนิยามแสดงค่า True หากสตริงที่กำหนดสิ้นสุดด้วยสตริงย่อยที่ระบุ ระบบจะข้ามช่องว่าง
ตัวอย่าง
ENDSWITH("Tableau", "leau") = true
หมายเหตุดูเพิ่มเติมที่ RegEx ที่รองรับในเอกสารประกอบฟังก์ชันเพิ่มเติม(ลิงก์จะเปิดในหน้าต่างใหม่)

FIND

ไวยากรณ์FIND(string, substring, [start])
เอาต์พุตหมายเลข
คำนิยาม

แสดงตำแหน่งดัชนีของสตริงย่อยในสตริง หรือ 0 หากไม่พบสตริงย่อย อักขระตัวแรกในสตริงคือตำแหน่ง 1

หากเพิ่มอาร์กิวเมนต์ตัวเลขเสริม start ฟังก์ชันจะข้ามอินสแตนซ์ของสตริงย่อยที่ปรากฏก่อนตำแหน่งที่เริ่มต้น

ตัวอย่าง
FIND("Calculation", "alcu") = 2
FIND("Calculation", "Computer") = 0
FIND("Calculation", "a", 3) = 7
FIND("Calculation", "a", 2) = 2
FIND("Calculation", "a", 8) = 0
หมายเหตุดูเพิ่มเติมที่ RegEx ที่รองรับในเอกสารประกอบฟังก์ชันเพิ่มเติม(ลิงก์จะเปิดในหน้าต่างใหม่)

FINDNTH

ไวยากรณ์FINDNTH(string, substring, occurrence)
เอาต์พุตหมายเลข
คำนิยามแสดงตำแหน่งที่เกิดสตริงย่อยที่ n ขึ้นภายในสตริงที่ระบุ ซึ่ง n กำหนดจากอาร์กิวเมนต์การเกิดขึ้น
ตัวอย่าง
FINDNTH("Calculation", "a", 2) = 7
หมายเหตุ

FINDNTH ไม่มีให้ใช้งานในบางแหล่งข้อมูล

ดูเพิ่มเติมที่ RegEx ที่รองรับในเอกสารประกอบฟังก์ชันเพิ่มเติม(ลิงก์จะเปิดในหน้าต่างใหม่)

LEFT

ไวยากรณ์ LEFT(string, number)
เอาต์พุตสตริง
คำนิยามแสดง <number> อักขระซ้ายสุดในสตริง
ตัวอย่าง
LEFT("Matador", 4) = "Mata"
หมายเหตุดูเพิ่มเติมที่ MID และ RIGHT

LEN

ไวยากรณ์LEN(string)
เอาต์พุตหมายเลข
คำนิยามแสดงความยาวของสตริง
ตัวอย่าง
LEN("Matador") = 7
หมายเหตุเพื่อไม่ให้สับสนกับฟังก์ชันเชิงพื้นที่(ลิงก์จะเปิดในหน้าต่างใหม่) LENGTH

LOWER

ไวยากรณ์LOWER(string)
เอาต์พุตสตริง
คำนิยามแสดง <string> ที่ระบุเป็นอักขระตัวพิมพ์เล็กทั้งหมด
ตัวอย่าง
LOWER("ProductVersion") = "productversion"
หมายเหตุดูเพิ่มเติมที่ UPPER และ PROPER

LTRIM

ไวยากรณ์ LTRIM(string)
เอาต์พุตสตริง
คำนิยามแสดง <string> ที่ระบุที่มีการลบช่องว่างนำหน้าออก
ตัวอย่าง
LTRIM(" Matador ") = "Matador "
หมายเหตุดูเพิ่มเติมที่ RTRIM

MAX

ไวยากรณ์MAX(expression) หรือ MAX(expr1, expr2)
เอาต์พุตประเภทข้อมูลเดียวกันกับอาร์กิวเมนต์หรือ NULL  หากส่วนใดส่วนหนึ่งของอาร์กิวเมนต์เป็นค่า null
คำนิยาม

แสดงค่าสูงสุดของสองอาร์กิวเมนต์ ซึ่งต้องเป็นประเภทข้อมูลเดียวกัน

MAX ยังสามารถนำไปใช้กับฟิลด์เดียวเป็นการรวบรวมได้

ตัวอย่าง
MAX(4,7) = 7
MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021#
MAX([Name]) = "Zander"
หมายเหตุ

สำหรับสตริง

โดยปกติ MAX จะเป็นค่าที่อยู่หลังสุดตามลำดับตัวอักษร

สำหรับแหล่งข้อมูลของฐานข้อมูล ค่าสตริง MAX จะเป็นค่าที่สูงที่สุดในลำดับการจัดเรียงที่กำหนดตามฐานข้อมูลของคอลัมน์นั้น

สำหรับวันที่

สำหรับวันที่ MAX เป็นวันที่ล่าสุด หาก MAX เป็นการรวบรวม ผลลัพธ์จะไม่มีลำดับชั้นวันที่ หาก MAX คือการเปรียบเทียบ ผลลัพธ์จะคงลำดับชั้นวันที่ไว้

เป็นการรวบรวม

MAX(expression) เป็นฟังก์ชันรวมและแสดงผลลัพธ์รวมเพียงรายการเดียว สิ่งนี้จะแสดงเป็น AGG(expression) ในการแสดงเป็นภาพ

เป็นการเปรียบเทียบ

MAX(expr1, expr2) เปรียบเทียบค่าทั้งสองและแสดงค่าระดับแถว

ดูเพิ่มเติมที่ MIN

MID

ไวยากรณ์(MID(string, start, [length])
เอาต์พุตสตริง
คำนิยาม

แสดงผลลัพธ์สตริงจากตำแหน่ง start ที่ระบุ อักขระตัวแรกในสตริงคือตำแหน่ง 1

หากเพิ่มอาร์กิวเมนต์ตัวเลขเสริม length สตริงที่แสดงจะมีแต่จำนวนอักขระ

ตัวอย่าง
MID("Calculation", 2) = "alculation"
MID("Calculation", 2, 5) ="alcul"
หมายเหตุดูเพิ่มเติมที่ RegEx ที่รองรับในเอกสารประกอบฟังก์ชันเพิ่มเติม(ลิงก์จะเปิดในหน้าต่างใหม่)

MIN

ไวยากรณ์MIN(expression) หรือ MIN(expr1, expr2)
เอาต์พุตประเภทข้อมูลเดียวกันกับอาร์กิวเมนต์หรือ NULL  หากส่วนใดส่วนหนึ่งของอาร์กิวเมนต์เป็นค่า null
คำนิยาม

แสดงค่าสูงสุดของสองอาร์กิวเมนต์ ซึ่งต้องเป็นประเภทข้อมูลเดียวกัน

MIN ยังสามารถนำไปใช้กับฟิลด์เดียวเป็นการรวบรวมได้

ตัวอย่าง
MIN(4,7) = 4
MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#
MIN([Name]) = "Abebi"
หมายเหตุ

สำหรับสตริง

โดยปกติแล้ว MIN จะเป็นค่าที่มาก่อนตามลำดับตัวอักษร

สำหรับแหล่งข้อมูลของฐานข้อมูล ค่าสตริง MIN จะเป็นค่าที่ต่ำสุดในลำดับการจัดเรียงที่กำหนดตามฐานข้อมูลของคอลัมน์นั้น

สำหรับวันที่

สำหรับวันที่ MIN เป็นวันแรกที่สุด หาก MIN เป็นการรวบรวม ผลลัพธ์จะไม่มีลำดับชั้นวันที่ หาก MIN คือการเปรียบเทียบ ผลลัพธ์จะคงลำดับชั้นวันที่ไว้

เป็นการรวบรวม

MIN(expression) เป็นฟังก์ชันรวมและแสดงผลลัพธ์รวมเพียงรายการเดียว สิ่งนี้จะแสดงเป็น AGG(expression) ในการแสดงเป็นภาพ

เป็นการเปรียบเทียบ

MIN(expr1, expr2) เปรียบเทียบค่าทั้งสองและแสดงค่าระดับแถว

ดูเพิ่มเติมที่ MAX

PROPER

ไวยากรณ์PROPER(string)
เอาต์พุตสตริง
คำนิยาม

แสดง <string> ที่ระบุที่มีอักษรตัวแรกของแต่ละคำเป็นตัวพิมพ์ใหญ่และตัวอักษรที่เหลือจะเป็นตัวพิมพ์เล็ก

ตัวอย่าง
PROPER("PRODUCT name") = "Product Name"
PROPER("darcy-mae") = "Darcy-Mae"
หมายเหตุ

ช่องว่างและอักขระที่ไม่ใช่ตัวอักษรและตัวเลข เช่น เครื่องหมายวรรคตอนยังทำหน้าที่เป็นตัวคั่น

ดูเพิ่มเติมที่ LOWER และ UPPER

ข้อจำกัดของฐานข้อมูลPROPER ใช้ได้เฉพาะกับไฟล์ Flat บางไฟล์และในรูปแบบการแยกข้อมูลเท่านั้น หากคุณต้องการใช้ PROPER ในแหล่งข้อมูลที่ไม่รองรับ ให้พิจารณาใช้การแยกข้อมูล

REPLACE

ไวยากรณ์REPLACE(string, substring, replacement
เอาต์พุตสตริง
คำนิยามค้นหา <string> สำหรับ <substring> และแทนที่ด้วย <replacement> หากไม่พบ <substring> สตริงจะไม่เปลี่ยนแปลง
ตัวอย่าง
REPLACE("Version 3.8", "3.8", "4x") = "Version 4x"
หมายเหตุดูเพิ่มเติมที่ REGEXP_REPLACE ในเอกสารประกอบฟังก์ชันเพิ่มเติม(ลิงก์จะเปิดในหน้าต่างใหม่)
ไวยากรณ์RIGHT(string, number)
เอาต์พุตสตริง
คำนิยามแสดง <number> อักขระขวาสุดในสตริง
ตัวอย่าง
RIGHT("Calculation", 4) = "tion"
หมายเหตุดูเพิ่มเติมที่ LEFT และ MID

RTRIM

ไวยากรณ์RTRIM(string)
เอาต์พุตสตริง
คำนิยามแสดง <string> ที่ระบุที่มีการลบช่องว่างต่อท้ายออก
ตัวอย่าง
RTRIM(" Calculation ") = " Calculation"
หมายเหตุดูเพิ่มเติมที่ LTRIM และ TRIM

SPACE

ไวยากรณ์SPACE(number)
เอาต์พุตสตริง (มีเพียงช่องว่างโดยเฉพาะ)
คำนิยามแสดงสตริงที่ประกอบด้วยช่องว่างซ้ำตามจำนวนที่ระบุ
ตัวอย่าง
SPACE(2) = "  "

SPLIT

ไวยากรณ์SPLIT(string, delimiter, token number)
เอาต์พุตสตริง
คำนิยามแสดงสตริงย่อยจากสตริง โดยใช้อักขระตัวคั่นเพื่อแบ่งสตริงออกเป็นลำดับของโทเค็น
ตัวอย่าง
SPLIT ("a-b-c-d", "-", 2) = "b"
SPLIT ("a|b|c|d", "|", -2) = "c"
หมายเหตุ

สตริงได้รับการตีความว่าเป็นลำดับของตัวคั่นและโทเค็นที่สลับกัน ดังนั้นสำหรับสตริง abc-defgh-i-jkl ที่มีอักขระตัวคั่นเป็น '-' โทเค็นจะเป็น (1) abc, (2) defgh, (3) i และ (4) jlk

SPLIT จะแสดงโทเค็นที่สอดคล้องกับหมายเลขโทเค็น เมื่อหมายเลขโทเค็นเป็นค่าบวก โทเค็นจะถูกนับโดยเริ่มจากด้านซ้ายสุดของสตริง เมื่อหมายเลขโทเค็นเป็นค่าลบ โทเค็นจะถูกนับโดยเริ่มจากด้านขวา

ดูเพิ่มเติมที่ REGEX ที่รองรับในเอกสารประกอบฟังก์ชันเพิ่มเติม(ลิงก์จะเปิดในหน้าต่างใหม่)

ข้อจำกัดของฐานข้อมูล

คำสั่งการแบ่งและการแบ่งแบบกำหนดเองใช้ได้สำหรับแหล่งข้อมูลประเภทต่อไปนี้ การแยกข้อมูลใน Tableau, Microsoft Excel, ไฟล์ข้อความ, ไฟล์ PDF, Salesforce, OData, Microsoft Azure Market Place, Google Analytics, Vertica, Oracle, MySQL, PostgreSQL, Teradata, Amazon Redshift, Aster Data, Google BigQuery, Cloudera Hadoop Hive, Hortonworks Hive และ and Microsoft SQL Server

แหล่งข้อมูลบางอย่างจะกำหนดขีดจำกัดในการแยกสตริง ดูข้อจำกัดของฟังก์ชัน SPLIT ภายหลังในหัวข้อนี้

STARTSWITH

ไวยากรณ์STARTSWITH(string, substring)
เอาต์พุตบูลีน
คำนิยามแสดงค่า True หาก string เริ่มต้นด้วย substring ช่องว่างนำหน้าจะถูกละเว้น
ตัวอย่าง
STARTSWITH("Matador, "Ma") = TRUE
หมายเหตุดูเพิ่มเติมที่ CONTAINS รวมถึง REGEX ที่รองรับในเอกสารประกอบฟังก์ชันเพิ่มเติม(ลิงก์จะเปิดในหน้าต่างใหม่)

TRIM

ไวยากรณ์TRIM(string)
เอาต์พุตสตริง
คำนิยามแสดง <string> ที่ลบช่องว่างนำหน้าและต่อท้ายออกแล้ว
ตัวอย่าง
TRIM(" Calculation ") = "Calculation"
หมายเหตุดูเพิ่มเติมที่ LTRIM และ RTRIM

UPPER

ไวยากรณ์UPPER(string)
เอาต์พุตสตริง
คำนิยามแสดง <string> ที่ระบุเป็นอักขระตัวพิมพ์ใหญ่ทั้งหมด
ตัวอย่าง
UPPER("Calculation") = "CALCULATION"
หมายเหตุดูเพิ่มเติมที่ PROPER และ LOWER

สร้างการคำนวณสตริง

ทำตามขั้นตอนด้านล่างเพื่อเรียนรู้วิธีสร้างการคำนวณสตริง

  1. ใน Tableau Desktop ให้เชื่อมต่อกับแหล่งข้อมูลที่บันทึกไว้ ตัวอย่าง - Superstore ที่มาพร้อมกับ Tableau

  2. ไปยังเวิร์กชีต

  3. จากแผงข้อมูล ในส่วน “มิติข้อมูล” ให้ลากID ลำดับไปยังแผงแถว

    โปรดทราบว่าทุก ID ลำดับมีค่าประเทศ (ตัวอย่างเช่น CA และ US), ปี (2011) และหมายเลขลำดับ (100006) สำหรับตัวอย่างนี้ คุณจะสร้างการคำนวณเพื่อดึงเฉพาะหมายเลขลำดับจากฟิลด์

  4. เลือก "การวิเคราะห์” > สร้างฟิลด์ที่คำนวณ

  5. ในตัวแก้ไขการคำนวณที่เปิดขึ้น ให้ทำดังนี้

    • ตั้งชื่อฟิลด์คำนวณหมายเลข ID ลำดับ

    • ป้อนสูตรต่อไปนี้:

      RIGHT([Order ID], 6)

      สูตรนี้จะนำตัวเลขที่ระบุ (6) จากด้านขวาของสตริงและดึงไปยังฟิลด์ใหม่

      ดังนั้น RIGHT('CA-2011-100006' , 6) = '100006'

    • เมื่อเสร็จแล้ว ให้คลิกตกลง

      ฟิลด์ที่คำนวณใหม่จะปรากฏในส่วน "มิติข้อมูล" ในแผง "ข้อมูล" คุณสามารถใช้ฟิลด์นี้ในการแสดงเป็นภาพได้มากกว่าหนึ่งรายการ เช่นเดียวกับฟิลด์อื่นๆ

  6. จากแผง ข้อมูล ให้ลากหมายเลข ID ลำดับ ไปยังแถบ แถว วางลงบนด้านขวาของ ID ลำดับ

    สังเกตถึงความแตกต่างที่เกิดขึ้นกับฟิลด์

ข้อจำกัดของ SPLIT ตามแหล่งข้อมูล

แหล่งข้อมูลบางแห่งจะกำหนดขีดจำกัดในการแยกสตริง ตารางต่อไปนี้แสดงให้เห็นว่าแหล่งข้อมูลใดรองรับหมายเลขโทเค็นค่าลบ (แยกจากด้านขวา) และมีการจำกัดจำนวนการแยกที่อนุญาตต่อแหล่งข้อมูลหรือไม่

ฟังก์ชัน SPLIT ที่ระบุหมายเลขโทเค็นค่าลบและใช้ได้กับแหล่งข้อมูลอื่นจะส่งกลับข้อผิดพลาดนี้ที่เกิดขึ้นกับแหล่งข้อมูลเหล่านี้: “แหล่งข้อมูลไม่รองรับการแยกจากด้านขวา”

แหล่งข้อมูลข้อจำกัดด้านซ้าย/ขวาจำนวนการแยกสูงสุดข้อจำกัดเวอร์ชัน
การแยกข้อมูลใน Tableauทั้งคู่ไม่จำกัด 
Microsoft Excelทั้งคู่ไม่จำกัด 
ไฟล์ข้อความทั้งคู่ไม่จำกัด 
Salesforceทั้งคู่ไม่จำกัด 
ODataทั้งคู่ไม่จำกัด 
Google Analyticsทั้งคู่ไม่จำกัด 
เซิร์ฟเวอร์ข้อมูล Tableauทั้งคู่ไม่จำกัดรองรับในเวอร์ชัน 9.0
Verticaเฉพาะด้านซ้ายเท่านั้น10 
Oracleเฉพาะด้านซ้ายเท่านั้น10 
MySQLทั้งคู่10 
PostgreSQLเฉพาะด้านซ้ายเท่านั้นสำหรับเวอร์ชันก่อน 9.0 ทั้งสองด้านสำหรับเวอร์ชัน 9.0 ขึ้นไป10 
Teradataเฉพาะด้านซ้ายเท่านั้น10เวอร์ชัน 14 และใหม่กว่า
Amazon Redshiftเฉพาะด้านซ้ายเท่านั้น10 
ฐานข้อมูล Asterเฉพาะด้านซ้ายเท่านั้น10 
Google BigQueryเฉพาะด้านซ้ายเท่านั้น10 
Hortonworks Hadoop Hiveเฉพาะด้านซ้ายเท่านั้น10 
Cloudera Hadoopเฉพาะด้านซ้ายเท่านั้น10รองรับ Impala ตั้งแต่เวอร์ชัน 2.3.0
Microsoft SQL Serverทั้งคู่102008 และใหม่กว่า

ดูเพิ่มเติม

ฟังก์ชันใน Tableau

ฟังก์ชัน Tableau (เรียงตามตัวอักษร)

ฟังก์ชัน Tableau (ตามหมวดหมู่)

การจัดรูปแบบการคำนวณใน Tableau

ขอบคุณสำหรับข้อเสนอแนะของคุณส่งข้อเสนอแนะของคุณเรียบร้อยแล้ว ขอขอบคุณ