ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   Truncating a cell entry to the last full word (https://www.excelbanter.com/excel-worksheet-functions/177424-truncating-cell-entry-last-full-word.html)

Pat[_4_]

Truncating a cell entry to the last full word
 
Hi All,

I've searched in this amazing forum and found a forumla to truncate a
cell length: (assuming data is in A2)
=IF(LEN(A2)399,LEFT(A2,399),A2 & REPT(" ",399-LEN(A2)))

I'm trimming down text entries in a large spreadsheet where the
maximum number of characters in a cell has to be under 400.

Just wondering if anybody has any handy tips on truncating the cell as
above, but also cutting it off at the last whole word.

One thought I had was a formula that does the following: (assuming
text data of 399 characters is in A1)
"If last character in A1 is not a blank (space), then delete last
character in A1"

That would eliminate the last character of cell A1 that doesn't end in
a blank (space).

Thereafter it would just be a case of reapplying the formula a few
times until all the characters of a truncated word have been deleted
and the cell ends with a blank (space) and that would mean that the
cell is under 399 characters in length and ends with a blank (space) =
truncation to the last full word.

Does that sound feasible? No need for a macro that repeats the formula
until the cell ends with a blank (space), I can repeat the forumla
manually to have the desired effect.

I would greatly apprecaite any help on this at all,

Thanks in advance,

All the best,

Pat

Gary''s Student

Truncating a cell entry to the last full word
 
Do you want the function to return the last word in a sentence or the
sentence with the last word removed?
--
Gary''s Student - gsnu2007d


"Pat" wrote:

Hi All,

I've searched in this amazing forum and found a forumla to truncate a
cell length: (assuming data is in A2)
=IF(LEN(A2)399,LEFT(A2,399),A2 & REPT(" ",399-LEN(A2)))

I'm trimming down text entries in a large spreadsheet where the
maximum number of characters in a cell has to be under 400.

Just wondering if anybody has any handy tips on truncating the cell as
above, but also cutting it off at the last whole word.

One thought I had was a formula that does the following: (assuming
text data of 399 characters is in A1)
"If last character in A1 is not a blank (space), then delete last
character in A1"

That would eliminate the last character of cell A1 that doesn't end in
a blank (space).

Thereafter it would just be a case of reapplying the formula a few
times until all the characters of a truncated word have been deleted
and the cell ends with a blank (space) and that would mean that the
cell is under 399 characters in length and ends with a blank (space) =
truncation to the last full word.

Does that sound feasible? No need for a macro that repeats the formula
until the cell ends with a blank (space), I can repeat the forumla
manually to have the desired effect.

I would greatly apprecaite any help on this at all,

Thanks in advance,

All the best,

Pat


Pete_UK

Truncating a cell entry to the last full word
 
Hi Pat,

this formula will find the position of the last space up to 399
characters from a string in A2:

=FIND(CHAR(1),SUBSTITUTE(LEFT(A2,399)," ",CHAR(1),(399-
LEN(SUBSTITUTE(LEFT(A2,399)," ","")))))

so, if you have such a long string, then this will return only
complete words up to but excluding that last space:

=LEFT(A2,FIND(CHAR(1),SUBSTITUTE(LEFT(A2,399)," ",CHAR(1),(399-
LEN(SUBSTITUTE(LEFT(A2,399)," ","")))))-1)

This more-complete formula will return either the complete text if it
is less than 399 characters, or text truncated to the last complete
word so that it is less than 400 characters:

=IF(LEN(A2)399,LEFT(A2,FIND(CHAR(1),SUBSTITUTE(LE FT(A2,399),"
",CHAR(1),(399-LEN(SUBSTITUTE(LEFT(A2,399)," ","")))))-1),A2)

You could then apply your formula in to add trailing spaces to the end
of this result in a separate cell, or you could combine that, as
follows:

=LEFT(IF(LEN(A2)399,LEFT(A2,FIND(CHAR(1),SUBSTITU TE(LEFT(A2,399),"
",CHAR(1),(399-LEN(SUBSTITUTE(LEFT(A2,399)," ","")))))-1),A2)&REPT(" ",
399),399)

i.e. add on loads of spaces then just take the first 399 characters.

Hope this helps.

Pete


On Feb 21, 2:12*pm, Pat wrote:
Hi All,

I've searched in this amazing forum and found a forumla to truncate a
cell length: (assuming data is in A2)
=IF(LEN(A2)399,LEFT(A2,399),A2 & REPT(" ",399-LEN(A2)))

I'm trimming down text entries in a large spreadsheet where the
maximum number of characters in a cell has to be under 400.

Just wondering if anybody has any handy tips on truncating the cell as
above, but also cutting it off at the last whole word.

One thought I had was a formula that does the following: (assuming
text data of 399 characters is in A1)
"If last character in A1 is not a blank (space), then delete last
character in A1"

That would eliminate the last character of cell A1 that doesn't end in
a blank (space).

Thereafter it would just be a case of reapplying the formula a few
times until all the characters of a truncated word have been deleted
and the cell ends with a blank (space) and that would mean that the
cell is under 399 characters in length and ends with a blank (space) =
truncation to the last full word.

Does that sound feasible? No need for a macro that repeats the formula
until the cell ends with a blank (space), I can repeat the forumla
manually to have the desired effect.

I would greatly apprecaite any help on this at all,

Thanks in advance,

All the best,

Pat



Pat[_4_]

Truncating a cell entry to the last full word
 
Hi Pete,

That's fabulous stuff. How many maths A-Levels did you do? ;-)

Thanks a million,

Cheers,

Pat

Pete_UK

Truncating a cell entry to the last full word
 
You're welcome, Pat. Glad it worked for you.

I did my A levels when they were proper qualifications, so they are
probably worth several times today's offerings !! <bg

Pete

On Feb 21, 3:42*pm, Pat wrote:
Hi Pete,

That's fabulous stuff. How many maths A-Levels did you do? ;-)

Thanks a million,

Cheers,

Pat




All times are GMT +1. The time now is 02:25 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com