Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 След.
Найти недостающие номера бланков
 
Формулы сильно упростил.
Расчет в зависимости от значения ячейки с ограничением максимального значения
 
Доброе утро!
Так устроит?
Код
=ЕСЛИ(B2;МИН(20000;B2*B3);МИН(15000;B1*B3))
Изменено: Светлый - 19 Сен 2019 06:33:21
Найти недостающие номера бланков
 
Формулы немного упростил. Файл новый.
Найти недостающие номера бланков
 
Неоптимизированные массивные формулы. Это число пропущенных подряд:
Код
=ЕСЛИОШИБКА(ИНДЕКС(ЧАСТОТА(СТРОКА($1:$21);СТРОКА($1:$20)*ЧАСТОТА(F$3:F$18;СТРОКА($1:$19)));НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА($1:$21);СТРОКА($1:$20)*ЧАСТОТА(F$3:F$18;СТРОКА($1:$19)))>1;СТРОКА($1:$21));СТРОКА(N1)))-1;"")

Остальные в файле.

Подсчет количества ячеек между одинаковыми числами
 
Можно такой формулой:
Код
=ЕСЛИОШИБКА(ПОИСКПОЗ(5;A2:E2;)+СЧЁТ(A$1:E1)-СЧЁТЕСЛИ(A$1:E1;5)-СУММ(F$1:F1)-1;"")
Но что делать, если в одной строке будет две 5 ?
*Чуть проще:
Код
=ЕСЛИОШИБКА(ПОИСКПОЗ(5;A2:E2;)+СЧЁТЕСЛИ(A$1:E1;"<>5")-СУММ(F$1:F1)-6;"")
Изменено: Светлый - 17 Сен 2019 22:22:46
Избушка формулистов-3, не для вопросов, но для формульных задач
 
Раз заготовки-примера никакого не было, у всех данные располагаются по-разному. Соревнования (тем более с автором   ) не получилось. Выкладываю свои наработки.
Всё сокращено донельзя. Решение только для конкретного этого примера. 80 символов:
Код
=МАКС((СТОЛБЕЦ(A:CW)+СТРОКА(1:51)*2<164)*(СТОЛБЕЦ(A:CW)*45+СТРОКА(1:51)*60))-6105
Универсальная формула, учитывающая ограничения по каждому работнику, цены, затраты, спрос. 280 знаков:
Код
=МАКС((СТОЛБЕЦ(A:PW)<E3+2)*(СТРОКА(1:800)<E4+2)*(СТОЛБЕЦ(A:PW)*G3-G3+СТРОКА(1:800)*G4-G4<2401)*(СТОЛБЕЦ(A:PW)*H3-H3+СТРОКА(1:800)*H4-H4<2401)*(СТОЛБЕЦ(A:PW)*I3-I3+СТРОКА(1:800)*I4-I4<2401)*(СТОЛБЕЦ(A:PW)*J3-J3+СТРОКА(1:800)*J4-J4<2401)*(СТОЛБЕЦ(A:PW)*K3-K3+СТРОКА(1:800)*K4-K4))-L3
Рисование объектов заданных размеров по массиву данных с симметричным распределением в ограниченной области, Поиск альтернативной визуализации данных
 
Попробовал пузырьковой диаграммой нарисовать 2000 пузырьков разного размера. Каждый размер соответствует распределению в смеси. Координаты можно сделать случайными все, но тогда не будет заметно различие между смесями. Выбираем номер смеси 0, 1 или 2 и любуемся картинкой. Пока не удалось придумать механизм, чтобы пузырьки не наезжали друг на друга, но можно считать, что это картинка объёмная.
Удалить определенный последний символ (если он есть)
 
Можно ещё так:
Код
=ЛЕВБ(A2;ДЛСТР(A2)-(ПРАВБ(A2)=",")) 

*В зависимости от того, какой десятичный разделитель, может сработать:

Код
=--A2
Изменено: Светлый - 16 Сен 2019 12:12:12
Выборка значений из последнего подсчитанного столбца
 
Может быть, так устроит?
Код
=ЕСЛИОШИБКА(ПРОСМОТР(;-1/A3:X3;A3:X3);"")
Распределить товар по магазинам, Распределить товар по магазинам. Каждый магазин имеет один из 4-х форматов, товар часто может находиться не во всех форматах.
 
Формулу немного упростил:
Код
=ОКРУГЛ(ЕСЛИ(ИНДЕКС($C5:$F5;J$3)="да";СУММ($B5;-Ч(+$I5:I5))*J$4/СУММ(СЧЁТЕСЛИМН($C$3:$F$3;J$3:$S$3&"*";$C5:$F5;"да")*J$4:$S$4));)
Распределить товар по магазинам, Распределить товар по магазинам. Каждый магазин имеет один из 4-х форматов, товар часто может находиться не во всех форматах.
 
Добрый вечер!
Формула массива, вводится одновременным нажатием Ctrl+Shift+Enter:
Код
=ОКРУГЛ(ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(J$3&"*";ЕСЛИ($C5:$F5="да";$C$3:$F$3);));СУММ($B5;-Ч(+$I5:I5))*J$4/СУММ(ЕЧИСЛО(ПОИСКПОЗ(J$3:$S$3;ЕСЛИ(Т(+$C5:$F5)="да";--ЛЕВБ($C$3:$F$3));))*J$4:$S$4));)
Пропорционально плану по магазинам удалось распределить, а в магазине по товарам не получилось. Возможно,
Цитата
Stics написал:
план 40, если количество товара на формат 1 равно 24
Поиск всех элементов списка в текстовых значениях другого списка
 
Раз модераторы не против ответов в этой теме (**увидел, что название поменяли), то и я вставлю свой пятачок.
Формула массива, вводится одновременным нажатием Ctrl+Shift+Enter:
Код
=СЧЁТ(ПОИСК(F$5:F$9;B5))
и простая формула:
Код
=СУММПРОИЗВ(СЧЁТЕСЛИ(B5;"*"&F$5:F$9&"*")) 

*А если требуется само значение, то:

Код
=ЕСЛИОШИБКА(ПРОСМОТР(;-ПОИСК(F$5:F$9;B5);F$5:F$9);"")
Изменено: Светлый - 14 Сен 2019 17:32:09
Вытягивание значений до и после определенного слова
 
Цитата
Алексейко написал:
Данный вариант не прокатывает
Исправил:
Код
=СЖПРОБЕЛЫ(ЛЕВБ(A5;ПОИСК("кв";A5&"кв")-1-ЕСЛИОШИБКА(МАКС((ПСТР(A5;ПОИСК("кв";A5&"кв")-{1;2};1)<"/")*{1;2});)))
Транспонирование столбца со сдвигом
 
Здравствуйте!
Для выделения символов, которые через запятую:
Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ИНДЕКС(C:C;СТРОКА(M10)/5);",";ПОВТОР(" ";99));ОСТАТ(СТРОКА(M5);5)*99+1;99))
Для img:
Код
=ИНДЕКС(E:I;СТРОКА(M10)/5;ОСТАТ(СТРОКА(M5);5)+1)
Для остальных столбцов (копированием):
Код
=ЕСЛИ(ОСТАТ(СТРОКА(M5);5);"";ИНДЕКС(A:A;СТРОКА(M10)/5))
Вытягивание значений до и после определенного слова
 
До:
Код
=СЖПРОБЕЛЫ(ЛЕВБ(A5;ПОИСК("кв";A5&"кв")-1-МАКС((ПСТР(A5;ПОИСК("кв";A5&"кв")-{1;2};1)<"/")*{1;2})))
После, но квартиры только числовые:
Код
=ЕСЛИ(ЕОШ(ПОИСК("кв";A5));"";ЕСЛИОШИБКА(-ПРОСМОТР(1;-ПРАВБ(A5;{1;2;3;4}));""))
Суммирование сгруппированных ячеек
 
Нарисовалась вот такая формула:
Код
=ЕСЛИ(A2;СУММПРОИЗВ((A3:ИНДЕКС(A:A;ЕСЛИОШИБКА(ПОИСКПОЗ(A2;A3:A9997;)+СТРОКА();СЧЁТ(A:A)))=A2-1)*C3:ИНДЕКС(C:C;ЕСЛИОШИБКА(ПОИСКПОЗ(A2;A3:A9997;)+СТРОКА();СЧЁТ(A:A))));C2)
Она считает сумму чисел группы предыдущего уровня. Для 1 непрерывный ряд с 0, для 2 строки с 1 до следующей 2, для 3 все с 2 до следующей 3.
Не могу проверить группы с 3, потому что она одна. Возможно, в формуле придётся ещё проверку добавлять.
*Формулу исправил, чтобы полностью с новым столбцом работала, формула в столбце E:
Код
=ЕСЛИ(A2;СУММПРОИЗВ((A3:ИНДЕКС(A:A;ЕСЛИОШИБКА(ПОИСКПОЗ(A2;A3:A9999;)+СТРОКА();9999))=A2-1)*E3:ИНДЕКС(E:E;ЕСЛИОШИБКА(ПОИСКПОЗ(A2;A3:A9999;)+СТРОКА();9999)));C2)
Изменено: Светлый - 13 Сен 2019 19:50:06
Избушка формулистов-3, не для вопросов, но для формульных задач
 
Цитата
MCH написал: возможно другой алгоритм
У меня алгоритм такой же, только без ЕСЛИ и все константы уже посчитаны, вплоть до вместо (xxx-1)*15 делаю xxx*15-15 , а последние вычитаемые просуммированы и вынесены за <=. И строки только двухзначные.
Избушка формулистов-3, не для вопросов, но для формульных задач
 
Цитата
MCH написал: подумаю, как сократить
Всё-таки зацепила задачка.
Раз примера нет, данные непонятно из каких ячеек брать, написал голую формулу. С учётом конкретной постановки задачи, конкретной схемы производства использовал в формуле константы для времени и стоимости. Формула 80 знаков. Если условия изменить, то формула может сильно измениться вплоть до 198 знаков. Для определения количеств P и Q формула растёт и потребуются ещё две формулы для их выковыривания.
Избушка формулистов-3, не для вопросов, но для формульных задач
 
У меня получилась формула 160 знаков. Изюма никакого не обнаружил. Вопрос НЕ для Избушки
*Да, решение $300.
Изменено: Светлый - 12 Сен 2019 07:50:12
Определение города (региона) по № телефона
 
И мой вариант с подстраховкой, если в номере окажется код региона или города: =ПРОСМОТР(2;ПОИСК("+"&info!B$3:B$176;"+"&I2);info!A$3:A$176) И без подстраховки:

*Формулу подправил.
Код
=ПРОСМОТР(1;ПОИСК(info!B$3:B$176;I2);info!A$3:A$176)
Изменено: Светлый - 11 Сен 2019 10:42:57
Почему ВПР не находит данные, которые есть в таблице?, Не находит данные.
 
Цитата
Vadim_Zz написал:
всё равно не работает.есть еще варианты как это можно сделать?
Протянуть формулу вниз до ячеек, которые сработают.
Можно ли определить в ячейке второе слово с заглавной буквы и вставить текст перед ним?
 
Формула массива (вводится одновременным нажатием Ctrl+Shift+Enter):
Код
=ЗАМЕНИТЬ(ЛЕВБ(A2;ПОИСК(".,";A2));МИН(ЕСЛИ(СОВПАД(ПСТР(A2;СТРОКА($2:$99);1);ПСТР(СТРОЧН(A2);СТРОКА($2:$99);1));"";СТРОКА($2:$99)));;""""&СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПСТР(A2;ПОИСК(".,";A2)+3;99);СИМВОЛ(160);" "))&""" ") 

*

Код
=ЗАМЕНИТЬ(ЛЕВБ(A2;ПОИСК(".,";A2));МИН(ЕСЛИ(СОВПАД(ПСТР(A2;СТРОКА($2:$99);1);ПСТР(СТРОЧН(A2);СТРОКА($2:$99);1));"";СТРОКА($2:$99)));;""""&СЖПРОБЕЛЫ(ПСТР(A2;ПОИСК(".,";A2)+3;99))&""" ")

**Убрал все страховки на некорректность исходных данных:

Код
=ЛЕВБ(ЗАМЕНИТЬ(A2;МИН(ЕСЛИ(СОВПАД(ПСТР(A2;СТРОКА($2:$99);1);ПСТР(СТРОЧН(A2);СТРОКА($2:$99);1));"";СТРОКА($2:$99)));;""""&ПСТР(A2;ПОИСК(".,";A2)+3;99)&""" ");ДЛСТР(A2)+1)

Файл перезалил.
Изменено: Светлый - 10 Сен 2019 23:17:46
Почему ВПР не находит данные, которые есть в таблице?, Не находит данные.
 
В формуле не те диапазоны, что на самом деле. И в ТЕКСТОВЫХ (ЧИСЛОВЫХ) данных бесполезно искать ЧИСЛОВЫЕ (ТЕКСТОВЫЕ) значения. Надо либо учесть это в формуле, либо преобразовать данные в таблице.
*до исправления замечания модератора.
Код
=ВПР()
Изменено: Светлый - 10 Сен 2019 23:39:17
Поиск ячеек с числами в строках с определенным количеством столбцов
 
Цитата
Cupon написал:
можно это как-то исправить. Например через запятую итог 2;2
Формула массива:
Код
=ПОДСТАВИТЬ(ТЕКСТ(ПОДСТАВИТЬ(СУММ(ЧАСТОТА(СТОЛБЕЦ(A:F);СТОЛБЕЦ(A:E)*(B2:F2-A2:E2<>1))*10^{5:4:3:2:1:0});1;);"0-0-0-0-0");"0-";)
Изменено: Светлый - 10 Сен 2019 12:45:43
Поиск ячеек с числами в строках с определенным количеством столбцов
 
Цитата
buchlotnik написал:
но вариант без допов
Если в строчке встретятся две пары последовательных чисел Ваша формула выдаст 3, а должно быть 2.
Поиск ячеек с числами в строках с определенным количеством столбцов
 
Если я правильно понял, нужно найти максимальное число последовательных чисел в строке. Без промежутка.
Код
=МАКС(ЧАСТОТА(СТОЛБЕЦ(A:F);СТОЛБЕЦ(A:E)*(1-(B2:F2-A2:E2=1)))) 

*Чуть упростил:

Код
=МАКС(ЧАСТОТА(СТОЛБЕЦ(A:F);СТОЛБЕЦ(A:E)*(B2:F2-A2:E2<>1)))
Изменено: Светлый - 10 Сен 2019 06:55:57
Расчёт числа параллельных процессов
 
Цитата
MCH написал:
Возможно жадный алгоритм из 15го сообщения не все распределил
Формульный алгоритм немного модифицирован. Сначала ищем одно (для этого диапазон в формуле должен захватить пустые ячейки) или два свободных значения, чтобы в сумме дали равенство размеру контейнера. Если выровнять объём не удаётся, то берём максимальное. Следующие значения аналогично. Если при добавлении самого маленького свободного элемента контейнер переполнится, начинаем заполнять следующий контейнер. Хотелось бы проверять комбинацию из трёх элементов, но формула очень сильно усложнится и будет тормозить. Надо проверять, чтобы свободный элемент не суммировался два раза.
Расчёт числа параллельных процессов
 
Цитата
Андрей VG написал:
формульное решение возможно?
А то! Лишь бы все значения были разные.
*Немного красоты навёл:
Код
=ЕСЛИ($D$1>СУММ(F$3:F3)+МИН($B$4:$B$104);--ПРАВБ(МАКС(($D$1-СУММ(F$3:F3)=(СЧЁТЕСЛИ($E$4:E$40;$B$4:$B$104)+СЧЁТЕСЛИ(F$3:F3;$B$4:$B$104)=0)*(СТРОКА($4:$104)<>ТРАНСП(СТРОКА($4:$104)))*ТРАНСП(СЧЁТЕСЛИ($E$4:E$40;$B$4:$B$104)+СЧЁТЕСЛИ(F$3:F3;$B$4:$B$104)=0)*($B$4:$B$104+ТРАНСП($B$4:$B$104)))*($B$4:$B$104+10^8);($D$1-СУММ(F$3:F3)>=$B$4:$B$104)*(СЧЁТЕСЛИ($E$4:E$40;$B$4:$B$104)+СЧЁТЕСЛИ(F$3:F3;$B$4:$B$104)=0)*$B$4:$B$104);8);"")
Изменено: Светлый - 9 Сен 2019 10:46:58
Расчёт числа параллельных процессов
 
Цитата
Светлый написал:
которая два последних значения будет подбирать для точного равенства
Придумал. Неоптимизированная:
Код
=ЕСЛИ($J$41-СУММ(L$56:L56);ЕСЛИ(МАКС(($J$41-СУММ(L$56:L56)=(СЧЁТЕСЛИ($K$57:K$73;$C$2:$C$51)+СЧЁТЕСЛИ(L$56:L56;$C$2:$C$51)=0)*ТРАНСП(СЧЁТЕСЛИ($K$57:K$73;$C$2:$C$52)+СЧЁТЕСЛИ(L$56:L56;$C$2:$C$52)=0)*($C$2:$C$51+ТРАНСП($C$2:$C$52)))*$C$2:$C$51)>0;МАКС(($J$41-СУММ(L$56:L56)=(СЧЁТЕСЛИ($K$57:K$73;$C$2:$C$51)+СЧЁТЕСЛИ(L$56:L56;$C$2:$C$51)=0)*ТРАНСП(СЧЁТЕСЛИ($K$57:K$73;$C$2:$C$52)+СЧЁТЕСЛИ(L$56:L56;$C$2:$C$52)=0)*($C$2:$C$51+ТРАНСП($C$2:$C$52)))*$C$2:$C$51);МАКС(($J$41-СУММ(L$56:L56)>=$C$2:$C$51)*(СЧЁТЕСЛИ($K$57:K$73;$C$2:$C$51)+СЧЁТЕСЛИ(L$56:L56;$C$2:$C$51)=0)*$C$2:$C$51));"")

Цитата
Acid Burn написал:
6 этап можно "уместить" в 5-ом
Не хватало строк. Увеличил.
*Формулу немного переделал:
Код
=ЕСЛИ($J$41-СУММ(L$56:L56);ОСТАТ(МАКС(($J$41-СУММ(L$56:L56)=(СЧЁТЕСЛИ($K$57:K$73;$C$2:$C$51)+СЧЁТЕСЛИ(L$56:L56;$C$2:$C$51)=0)*ТРАНСП(СЧЁТЕСЛИ($K$57:K$73;$C$2:$C$51)+СЧЁТЕСЛИ(L$56:L56;$C$2:$C$51)=0)*($C$2:$C$51+ТРАНСП($C$2:$C$51)))*($C$2:$C$51+10^8);($J$41-СУММ(L$56:L56)>=$C$2:$C$51)*(СЧЁТЕСЛИ($K$57:K$73;$C$2:$C$51)+СЧЁТЕСЛИ(L$56:L56;$C$2:$C$51)=0)*$C$2:$C$51);10^8);"")

**Исправил недоработку:
Код
=ЕСЛИ($J$41-СУММ(L$56:L56);ОСТАТ(МАКС(($J$41-СУММ(L$56:L56)=(СЧЁТЕСЛИ($K$57:K$73;$C$2:$C$51)+СЧЁТЕСЛИ(L$56:L56;$C$2:$C$51)=0)*(СТРОКА($2:$51)<>ТРАНСП(СТРОКА($2:$51)))*ТРАНСП(СЧЁТЕСЛИ($K$57:K$73;$C$2:$C$51)+СЧЁТЕСЛИ(L$56:L56;$C$2:$C$51)=0)*($C$2:$C$51+ТРАНСП($C$2:$C$51)))*($C$2:$C$51+10^8);($J$41-СУММ(L$56:L56)>=$C$2:$C$51)*(СЧЁТЕСЛИ($K$57:K$73;$C$2:$C$51)+СЧЁТЕСЛИ(L$56:L56;$C$2:$C$51)=0)*$C$2:$C$51);10^8);"")

***Ещё улучшил:

Код
=ЕСЛИ($J$41-СУММ(L$56:L56);ОСТАТ(МАКС(($J$41-СУММ(L$56:L56)=(СЧЁТЕСЛИ($K$57:K$73;$C$2:$C$52)+СЧЁТЕСЛИ(L$56:L56;$C$2:$C$52)=0)*(СТРОКА($2:$52)<>ТРАНСП(СТРОКА($2:$52)))*ТРАНСП(СЧЁТЕСЛИ($K$57:K$73;$C$2:$C$52)+СЧЁТЕСЛИ(L$56:L56;$C$2:$C$52)=0)*($C$2:$C$52+ТРАНСП($C$2:$C$52)))*($C$2:$C$52+10^8);($J$41-СУММ(L$56:L56)>=$C$2:$C$52)*(СЧЁТЕСЛИ($K$57:K$73;$C$2:$C$52)+СЧЁТЕСЛИ(L$56:L56;$C$2:$C$52)=0)*$C$2:$C$52);10^8);"")
Изменено: Светлый - 9 Сен 2019 08:27:21
Расчёт числа параллельных процессов
 
"Жадный алгоритм" формулами:
Код
=МАКС(($J$41-СУММ(L$37:L37)>=$C$2:$C$51)*(СЧЁТЕСЛИ($K$38:K$49;$C$2:$C$51)+СЧЁТЕСЛИ(L$37:L37;$C$2:$C$51)=0)*$C$2:$C$51)
Думаю над формулой, которая два последних значения будет подбирать для точного равенства.
Страницы: 1 2 3 4 След.
Наверх