ฉันมีสเปรดชีต Google อย่างง่ายพร้อมสตริงข้อความจำนวนหนึ่ง ฉันแค่ต้องการจำนวนคำที่มีอยู่ในแต่ละเซลล์ มีฟังก์ชั่นสเปรดชีตของ Google ที่ฉันสามารถใช้งานได้หรือไม่?
ฉันมีสเปรดชีต Google อย่างง่ายพร้อมสตริงข้อความจำนวนหนึ่ง ฉันแค่ต้องการจำนวนคำที่มีอยู่ในแต่ละเซลล์ มีฟังก์ชั่นสเปรดชีตของ Google ที่ฉันสามารถใช้งานได้หรือไม่?
คำตอบ:
ใน Google Spreadsheets ฉันจะทำมันต่างออกไปเล็กน้อย
=COUNTA(SPLIT(A1, " "))
SPLIT
ฟังก์ชั่นจะใช้ได้เฉพาะในสเปรดชีตของ Google และจะแบ่งเนื้อหาของเซลล์ในทุกพื้นที่ ( " "
) COUNT
ฟังก์ชั่นก็จะนับกรณี
สูตร Excel ให้คำตอบเดียวกัน แต่ลำบากกว่า:
=LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))+1
ดูคำตอบต่อไปนี้เกี่ยวกับสูตรที่ไม่ซ้ำกับสเปรดชีตของ Google:
https://webapps.stackexchange.com/a/44719/29140
การปรับปรุงเล็กน้อยในสูตรในคำตอบอื่น ๆ นี้ดังนั้นในกรณีที่ A1 ว่างเปล่าหรือถ้ามีสตริงว่างมันจะคืนค่าศูนย์
= IF (LEN (A1) = 0,0, COUNTA (SPLIT (A1, ""))
หากคุณต้องการทำเช่นนี้ในช่วงเซลล์ (เช่นA1:A25
) คุณสามารถใช้สูตรด้านบนซึ่งCHAR(32)
เป็นอักขระช่องว่าง" "
=COUNTA(SPLIT(ARRAYFORMULA(CONCATENATE(A1:A25&CHAR(32)));CHAR(32)))
สิ่งนี้ใช้ได้กับเซลล์ว่างยกเว้นเมื่อเซลล์เริ่มต้นว่างเปล่า
อื่น ๆ :
=COUNTA(SPLIT(TRIM(A1&" #")," "))-1
สิ่งนี้เพียงแค่เพิ่มช่องว่างและเครื่องหมายปอนด์ต่อท้ายสิ่งที่อยู่ในเซลล์เป้าหมายรวมถึงการเพิ่มลงในค่า nullดังนั้นจึงไม่มีข้อผิดพลาดใด ๆ เกิดขึ้นในการนับ จากนั้นเราก็แค่ลบ "พื้นที่ปลอม" ออกไปในตอนท้าย
=ARRAYFORMULA(IF(LEN(A3:A),
MMULT(IF(IFERROR(SPLIT(IF(LEN(A3:A), A3:A, ), " "))<>"", 1, 0),
ROW(INDIRECT("A1:A"&COUNTA(IFERROR(
QUERY(IF(IFERROR(SPLIT(IF(LEN(A3:A), A3:A, ), " "))<>"", 1, 0), "limit 1", 0)))))^0), ))
=ARRAYFORMULA(IF(LEN(A3:A), LEN(REGEXREPLACE(A3:A, "[^\s]", ))+1, ))
=COUNTA(SPLIT(A1, " "))-IF(A1 = "",1,0)