-1

Здравствуйте, ниже приведены некоторые ячейки, в которых тексты произвольного размера разделены * или с% или с обоими% и * или с * и% или с более чем одним% или с ничем и некоторыми точками.

Ячейка A1: adlkjadflaskd * kljadkfjasdkfjhas

Ячейка A2: adslfkjasdfçlkjlkjlksjdflsdfs% 309982409

Ячейка A3: lkaçlaskjdfçklsadjf% sdakdaçsdlkfjaçsl% kdf

Ячейка A4: lkaçlaskj% dfçklsadjfsdakdaçs% dlkfjaçsl% kd% foi.emb% bl.za *

Ячейка A5: lkaçlaskj% dfçklsadjfs * dakdaçs% dlkfjaçsl% kd% .rdpdi

Ячейка A6: lkaçlaskj% dfçklsadjfs * dakdaçs% dlkfjaçsl% kd% e.nem

Ячейка A7: lkaçlaskj% dfçklsadjfs% dakdaçs% dlkfjaçsl% kd% ensjc.

Ячейка A8: lkaçlaskj% dfçklsadjfs * dakdaçs% dlkfjaçsl% kd% qsam

Ячейка A9: alksd.jflskjd

Ячейка A10: .alksd.jflskjd

Ячейка A11: alksdjflskjd.

Ячейка A12: asdsad

Как мне написать формулу, которая говорит следующее, пожалуйста?

a) Если существует только * (а% dont существует), то удалите все (включая его) справа и дайте в качестве результата только левую часть (например, ячейка B1 даст результат: ячейка B1: adlkjadflaskd)

б) Если существует только% (и * не существует), то удалите все (включая его) слева и дайте в качестве результата только правую часть (например, ячейка B2 выдаст в результате: Ячейка B2: 309982409)

c) Если существуют и *, и%, когда * стоит первым, а% или * следует в любом порядке за последние 2, то в качестве результата выдайте только то, что находится перед первым *, и удалите оставшееся после первого *, включая его ( например, ячейка B3 будет иметь следующий результат: ячейка B3: lkaçlaskjdfçklsadjf)

d) Если существуют и%, и *, когда% идет первым, чем *, или даже если другой% идет после первого%, то в качестве результата выдайте только то, что находится между первым%, который появляется с *, если * является следующим символом. после% (если isnt, пока не получен результат) и если между% и * внутри текста существует точка (.), которая не находится ни в какой другой позиции (начало / конец). Если есть% textwithpointinside *, получите результат, если нет - нет. Если между текстом нет точки, проверьте оставшуюся часть ячейки, если есть еще одна прямая комбинация% textwithpointinside *, чтобы напечатать этот первый случай, и если есть один результат, не нужно искать остальную часть ячейки для других результаты, напечатайте только первый. Если между% и * с точкой внутри нет результата, оставьте результат пустым. (например, в результате получится: Ячейка B4: foi.emb (потому что% существует с *, в то время как% идет первым, а% foi.emb * - первое событие% textwithpoint *, а% bl.za * - второй результат, так что этот второй результат будет проигнорирован, и только первый результат будет отправлен в ячейку B4)

e) Если существуют и%, и * (например, ячейки A5 и A6), с% на первом месте, но без прямого% textwithpointinside * или если в ячейке существует более одного% (например, ячейка A7) без *, то перейдите к последний% ячейки и дают в результате последний текст правую сторону после последнего%, но только если есть точка внутри этого последнего текста, и оставьте пустым, если pont перед текстом (ячейка A5), после текста ( ячейка A7) или не существующая (ячейка A8). (например, в результате получится: ячейка B5: пусто (потому что после последнего% точка находится перед текстом, а не внутри), ячейка B6: e.nem (нормально, потому что после последнего% есть точка внутри текста. И результат не dfçklsadjfs, потому что на нем не было никакой точки, в противном случае, если бы это было так), Ячейка B7: пусто (потому что после последнего% точка находится не внутри текста, а в конце), Ячейка B8: пусто ( потому что после последнего% нет смысла)

f) Если ни *, ни% не существует, скопируйте полный текст ячейки в качестве результата, только если текст содержит хотя бы 1 точку внутри текста (ячейка A9). Если перед текстом (ячейка A10) или после текста (ячейка A11) есть точка, оставьте результат пустым. И если в каком-либо месте нет точки (Ячейка A12), оставьте результат пустым. (например, в результате получится: Ячейка B9: alksd.jflskjd (потому что не имеет%, ни *, но имеет текст с точкой внутри), Ячейка B10: пустая (потому что перед текстом есть точка), Ячейка B11: пустая ( потому что после текста есть точка), ячейка B12: пустая (потому что нет ни *, ни%, ни точки)

Спасибо

1 ответ1

1

Поскольку ваши требования не очень понятны, я приведу часть формулы, чтобы получить результат для A1, A2, A5 и A6.

Как показано на следующем рисунке, вы можете попробовать эту формулу:

=IF(SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,"*","")))=1,LEFT(A1,FIND("*",A1)-1),IF(SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,"%","")))=1,MID(A1,FIND("%",A1)+1,LEN(A1)-FIND("%",A1)),IF(SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,".","")))=1,A1,"")))

Для A3, A4, предоставьте правильную информацию, и я помогу вам закончить эту формулу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .