У меня есть несколько строк с ячейкой, содержащей текст.
Они все так отформатированы.
A1: У моей жены 2 яблока, а у меня 4 яблока
A2: Моя собака любит 3 яблока, а у меня 2 яблока
A3: у нас есть 1 яблоко
Я хотел бы пройти через каждую строку / текст ячейки с помощью формулы «НАЙТИ» и вернуть общее количество яблок, упомянутых в тексте, в каждой строке.
У меня есть следующее, но оно соответствует только первому экземпляру «яблоко».
=IFERROR(MID(B305,FIND("apple",B305,1)-7,1),"")
Пожалуйста, может ли кто-нибудь помочь мне в этом (казалось бы, простом) вопросе?
2 ответа
Используйте эту формулу:
=(LEN(A1)-LEN(SUBSTITUTE(A1,"apple","")))/LEN("apple")
Перетащите / Скопируйте вниз, как требуется. Смотрите изображение для справки.
ПРИМЕЧАНИЕ. SUBSTITUTE
- чувствительная к регистру функция и даст неверный результат, если apple
используется как Apple
в формуле, как указано из комментариев @ gms0ulman. Следовательно, вместо нее можно использовать следующую формулу.
=(LEN(A1)-LEN(SUBSTITUTE(UPPER(A1),UPPER("Apple"),"")))/LEN("Apple")
B1: 6
; B2: 5
; B3: 1
Мне неясно, хотите ли вы вернуть количество упоминаний яблока или общее количество яблок в строке.
Если вам нужно общее количество яблок в строке, попробуйте эту формулу (обратите внимание, что мы должны искать apples
и apple
отдельно).
Сначала введите именованную формулу (Formula --> Define Name
)
Где
seq_99 Refers to =IF(ROW(INDEX(Sheet1!$1:$65535,1,1):INDEX(Sheet1!$1:$65535,255,1))=1,1,(ROW(INDEX(Sheet1!$1:$65535,1,1):INDEX(Sheet1!$1:$65535,255,1))-1)*99)
Тогда вы можете использовать эту формулу:
C1: =SUM(IFERROR((TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",99)),seq_99,99))="apples")*TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",99)),seq_99-99,99)),0))+
SUM(IFERROR((TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",99)),seq_99,99))="apple")*TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",99)),seq_99-99,99)),0))
Формула является формулой массива , поэтому ее необходимо вводить, удерживая ctrl + shift и одновременно нажимая Enter .
Вы можете заполнять столько, сколько необходимо.
Формула
- разбивает предложение на массив
- сравнивает каждый элемент в массиве с "яблоком"
- если он совпадает, он суммирует предыдущий элемент массива
Похожие вопросы
Новые вопросы
excel
Только для вопросов по программированию для объектов или файлов Excel или для разработки сложных формул. Вы можете объединить тег Excel с VBA, VSTO, C #, VB.NET, PowerShell, OLE-автоматизацией и другими тегами и вопросами, связанными с программированием, если это применимо. Общая помощь по MS Excel для функций одного листа доступна в Super User.
FIND
может возвращать только одно значение. Чтобы вернуть несколько значений, вы можете использовать вспомогательные столбцы, каждый из которых использует начальное значение для предыдущего экземпляра.