Страницы: 1
RSS
Использование в формулах знаков * и ?
 
Почему Excel не видит разницы между

*(Грибы )
и
*(*Грибы )
?
 
Какие именно функции не работают?
Функции ПОИСК, ВПР, ПОИСКПОЗ, СУММЕСЛИ и др. могут использовать подстановочные знаки "*" и "?", поэтому они не видят разницы.
Но можно обойти данное ограничение использовав другие функции.
Дайте пример, что именно не получается.
 
А поконкретней, в виде файла, где показано, что разницы нет?
Я так точно могу сказать, что не вижу разницы: и то и это - символьные строки...   :)
 
Если я не ошибаюсь, то "?" означает 1 знак,  "*" неопределенное количество знаков. Или я ошибаюсь?
Если все-таки не ошибаюсь, то
*(Грибы ) - это неопределенное количество знаков, потом скобка должна открываться, потом должно идти слово Грибы, потом пробел, потом скобка должна закрываться.
*(*Грибы ) - это неопределенное количество знаков, потом скобка должна открываться, потом опять неопределенное количество знаков, потом должно идти слово Грибы, потом пробел, потом скобка должна закрываться.
Формула выглядит следующим образом
=ЕСЛИОШИБКА(СУММЕСЛИ(Выручка!$G:$G;"*(Грибы )";Выручка!$I:$I)*0,05;0)+ЕСЛИОШИБКА(СУММЕСЛИ(Выручка!$G:$G;"*(*Грибы )";Выручка!$I:$I)*0,05;0)

Если три варианта текста на странице Выручка
Пицца с охотничьми колбасками (Лук репчатый, Грибы )
Пицца с охотничьми колбасками (Лук репчатый, Грибы, Грибы )
Пицца с охотничьми колбасками (Грибы )
Мне кажется, что результатом данной формулы, если каждого наименования по 1 штуке должно быть 0,150.
Первая строка должна давать 0,050
Вторая строка 0,050, потому что слово Грибы после слова Лук репчатый не попадает под формулу.
Третья строка должна давать 0,050
Где я ошибаюсь?
 
неопределенное количество знаков - в том числе нулевое.
поэтому под вторую маску у вас попадает и последняя ячейка - между открывающей скобкой и грибами - 0 любых символов
Изменено: ikki - 28.12.2013 18:06:58
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Объясните, пожалуйста, почему.

Пицца с охотничьми колбасками (Лук репчатый, Грибы, Грибы ). Разве первые грибы в данной строке попадают под какую-нибудь маску?
 
А что Вы от этой строки хотите? Как её ищете?
 
первые - нет.
вторые грибы подпадают
под вторую маску
в данном случае вторая звездочка - это подстрока "Лук репчатый, Грибы, "
Изменено: ikki - 28.12.2013 18:23:49
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Хочу знать сколько при приготовлении пиццы было потрачено грибов (например), чтобы знать сколько грибов должно быть списано.
Есть основное наименование пиццы
Например
Пицца с охотничьими колбасками.
По желанию гостей заведения в пиццу могут быть дополнительно добавлены различные модификаторы (грибы, лук, перец болгарский, кукуруза и т.д.)
Такие добавки в отчете пишутся в скобках. Например,
Пицца с охотничьими колбаски (Лук репчатый, Грибы, Кукуруза )
Теоретически количество добавок может меняться от 0 до бесконечности. Причем последовательность добавок в отчете определяется официантом принимающим заказ.
Я каждое утро снимаю отчет. Ищу и списываю при помощи формулы, которая должна в идеале (мне так кажется) выглядеть так:

=ЕСЛИОШИБКА(СУММЕСЛИ(Выручка!$G:$G;"*(Грибы )";Выручка!$I:$I)*0,05;0) (если добавка Грибы стоит на первом месте)
+ЕСЛИОШИБКА(СУММЕСЛИ(Выручка!$G:$G;"*(*Грибы )";Выручка!$I:$I)*0,05;0) (если добавка Грибы стоит на последнем месте)
+ЕСЛИОШИБКА(СУММЕСЛИ(Выручка!$G:$G;"*(*Грибы* )";Выручка!$I:$I)*0,05;0) (если добавка Грибы стоит не в начале и не в конце)

В чем я ошибаюсь?
Изменено: DanKZ - 28.12.2013 18:46:03
 
Цитата
В чем я ошибаюсь?
1. ЕСЛИОШИБКА не нужна - не знаю случаев, когда СУММЕСЛИ возвращает ошибку;
2-ая и главная - нет файла-примера.

зы. И вообще достаточно один раз:
Код
=СУММЕСЛИ(Выручка!$G:$G;"*Грибы*";Выручка!$I:$I)*0,05
для всех грибов, даже мухоморов.
 
1. Уже точно не вспомню зачем вставил в формулу ЕСЛИОШИБКА. Какая-то причина была точно, возможно и надуманная  :D  . Возможно вы и правы, спорить не буду.
2. Файл-пример теперь есть. (Для упрощения восприятия убрал все лишние столбцы и страницы)
3.  Кухня развивается добавляются новые продукты, уже сейчас есть Грибы соленые, которые будут пересекаться с грибами в добавках к пицце, поэтому использование вашей формулы в моем случае неприемлем.
4. Если добавок нет, то пишется только название пиццы.
5. Между добавками ставится запятая. После последней добавки ставится пробел. Все добавки с большой буквы.
Может быть правильно будет использовать следующую формулу?
=ЕСЛИОШИБКА(СУММЕСЛИ(Выручка!$A:$A;"*(Грибы* )";Выручка!$B:$B)*0,05;0) - для грибов, которые первые в списке добавок
+ЕСЛИОШИБКА(СУММЕСЛИ(Выручка!$A:$A;"*(*Грибы )";Выручка!$B:$B)*0,05;0) - для грибов, которые в конце списка добавок
+ЕСЛИОШИБКА(СУММЕСЛИ(Выручка!$A:$A;"*(*, Грибы,* )";Выручка!$B:$B)*0,05;0) - для грибов, которые в середине списка добавок
 
Для вашего примера:
Код
=СУММЕСЛИМН(Выручка!B2:B5;Выручка!A2:A5;"*грибы*";Выручка!A2:A5;"<>Грибы соленые")*0,05
 
Цитата
не знаю случаев, когда СУММЕСЛИ возвращает ошибку
очевидно, в случаях, когда в диапазоне есть ячейки с ошибками  ;)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Только если эти ошибки попадают под условие счета. И только в диапазоне суммирования.
 
А мой последний вариант правильный?

Хотелось бы не просто найти правильную формулу для работы, но и понять как Excel воспринимает знаки * и ?, чтобы в последующем не задавать тут, возможно, глупые вопросы.
Всех с наступающим Новым Годом.  
Изменено: DanKZ - 29.12.2013 08:22:00
 
Правильный, только громоздкий. Да и ошибиться можно, перечисляя все возможные варианты.
Страницы: 1
Наверх