Saya agak terlambat ke pesta, tapi mungkin ini bisa membantu. Tautan dalam pertanyaan memiliki rumus yang serupa, tetapi milik saya menggunakan pernyataan IF () untuk menghilangkan kesalahan.
Jika Anda tidak takut dengan Ctrl + Shift + Enter, Anda dapat melakukannya dengan cukup baik dengan rumus array.
String (dalam sel A1): "one.two.three.four"
Rumus:
{=MAX(IF(MID(A1,ROW($1:$99),1)=".",ROW($1:$99)))} use Ctrl+Shift+Enter
Hasil: 14
Pertama,
ROW($1:$99)
mengembalikan array bilangan bulat 1-99: {1,2,3,4,...,98,99}
.
Lanjut,
MID(A1,ROW($1:$99),1)
mengembalikan array string 1-panjang yang ditemukan di string target, lalu mengembalikan string kosong setelah panjang string target tercapai: {"o","n","e",".",..."u","r","","",""...}
Lanjut,
IF(MID(I16,ROW($1:$99),1)=".",ROW($1:$99))
membandingkan setiap item dalam array dengan string "." dan mengembalikan indeks karakter dalam string atau FALSE:{FALSE,FALSE,FALSE,4,FALSE,FALSE,FALSE,8,FALSE,FALSE,FALSE,FALSE,FALSE,14,FALSE,FALSE.....}
Terakhir,
=MAX(IF(MID(I16,ROW($1:$99),1)=".",ROW($1:$99)))
mengembalikan nilai maksimum array: 14
Kelebihan formula ini adalah pendek, relatif mudah dipahami, dan tidak memerlukan karakter unik.
Kekurangannya adalah penggunaan Ctrl + Shift + Enter dan batasan panjang string. Ini dapat dikerjakan dengan variasi yang ditunjukkan di bawah ini, tetapi variasi itu menggunakan fungsi OFFSET () yang merupakan fungsi volatil (baca: lambat).
Tidak yakin berapa kecepatan rumus ini vs. yang lain.
Variasi:
=MAX((MID(A1,ROW(OFFSET($A$1,,,LEN(A1))),1)=".")*ROW(OFFSET($A$1,,,LEN(A1)))) works the same way, but you don't have to worry about the length of the string
=SMALL(IF(MID(A1,ROW($1:$99),1)=".",ROW($1:$99)),2) determines the 2nd occurrence of the match
=LARGE(IF(MID(A1,ROW($1:$99),1)=".",ROW($1:$99)),2) determines the 2nd-to-last occurrence of the match
=MAX(IF(MID(I16,ROW($1:$99),2)=".t",ROW($1:$99))) matches a 2-character string **Make sure you change the last argument of the MID() function to the number of characters in the string you wish to match!