powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
46 сообщений из 46, показаны все 2 страниц
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37411487
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, подскажите, такое можно решить с помощью формулы массивов?

Шаг 0 46 76221 35746 7
Шаг 1 46 76221 35746 (убрали самую правую цифру, которая 7)
Шаг 2 6+6+2+3+7+6=30 (складываем чётные)
Шаг 3 30х3=90 (константа = 3)
Шаг 4 4+7+2+1+5+4=23 (складываем нечётные)
Шаг 5 90+23=113 (складываем результат шагов 2 и 4)
Шаг 6 10-3=7 (отнять крайнюю правую цифру результата шага 5 от 10 (константы))

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

1. =СУММ(ЗНАЧЕН(ПСТР(ABS(A4);СТРОКА(ДВССЫЛ("1:"&ДЛСТР(ABS(A4))));1))) - суммирование значений всех

2. =ПСТР(A4;ПОИСКПОЗ(0;(ЕОШИБКА(ПСТР(A4;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A4)));1)*1)*1);0);ДЛСТР(A4)-СУММ((ЕОШИБКА(ПСТР(A4;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A4)));1)*1)*1))) - выделение цифр, например из текста

3. и функцию чётн и нечётн?
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37411490
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или только VBA?
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37411501
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan33Шаг 5 90+23=113 (складываем результат шагов 3 и 4)
поправлюсь
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37411527
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan33Ivan33Шаг 5 90+23=113 (складываем результат шагов 3 и 4)
поправлюсь
Только не сильно, в дверь не протиснетесь :)

Непонятно "Шаг 2, складываем четные". В примере два четных числа (в "Шаг 1"): 46 и 35746, вы же складываете 6+6+2+3+7+6. Дальше шаги не просматривал.
Покажите в файле.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37411561
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже сообразил, это одно число в ячейке.
Формула массива для постоянной длины числа:
{=10-ПРАВСИМВ(СУММ(--ПСТР(A1;СТРОКА(1:6)*2;1))*3+СУММ(--ПСТР(A1;СТРОКА(1:6)*2-1;1)))}
Если длина текста разная, нужно доработать.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37411663
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
viktturУже сообразил, это одно число в ячейке.
Формула массива для постоянной длины числа:
{=10-ПРАВСИМВ(СУММ(--ПСТР(A1;СТРОКА(1:6)*2;1))*3+СУММ(--ПСТР(A1;СТРОКА(1:6)*2-1;1)))}
Если длина текста разная, нужно доработать. у меня с моим числом вадётся цифра 8, хотя должна быть цифра 7
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37411666
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan33viktturЕсли длина текста разная, нужно доработать. у меня с моим числом вадётся цифра 8, хотя должна быть цифра 7 да, всё работает. забыл ввод сдеать как "массив".
да, длинна разная
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37411726
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
viktturУже сообразил а с третьим пунктом (применение чётн и нечётн) не стоит мутить?
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37411748
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тестируйте, для длины строки от 1 до 20:
{=10-ПРАВСИМВ(СУММ(--ПСТР(ЛЕВСИМВ(A1;ДЛСТР(A1)-1)&ПОВТОР("0";20);СТРОКА(1:10)*2;1))*3+СУММ(--ПСТР(ЛЕВСИМВ(A1;ДЛСТР(A1)-1)&ПОВТОР("0";20);СТРОКА(1:10)*2-1;1)))}
Максимальную длину строки в А1 можно регулировать верхним диапазоном в СТРОКА(1:10)
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37411752
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan33viktturУже сообразил а с третьим пунктом (применение чётн и нечётн) не стоит мутить?
Формула обрабатывает отдельно четные, отдельно нечетные вхождения в строку.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37411805
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
viktturТестируйте, для длины строки от 1 до 20:
{=10-ПРАВСИМВ(СУММ(--ПСТР(ЛЕВСИМВ(A1;ДЛСТР(A1)-1)&ПОВТОР("0";20);СТРОКА(1:10)*2;1))*3+СУММ(--ПСТР(ЛЕВСИМВ(A1;ДЛСТР(A1)-1)&ПОВТОР("0";20);СТРОКА(1:10)*2-1;1)))}
Максимальную длину строки в А1 можно регулировать верхним диапазоном в СТРОКА(1:10) спасибо, туплю.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37412421
Михаил Ч.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan33,
Контрольную сумму штрихкода можно еще так посчитать (формула массива):
Код: plaintext
=10-ОСТАТ(СУММ(ПСТР(A1;{1:3:5:7:9:11}+{0;1};1)*{1;3});10)
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37412673
Михаил Ч.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Михаил Ч.Ivan33,
Контрольную сумму штрихкода можно еще так посчитать (формула массива):
Код: plaintext
=10-ОСТАТ(СУММ(ПСТР(A1;{1:3:5:7:9:11}+{0;1};1)*{1;3});10)

Можно даже немного сократить:
Код: plaintext
=ОСТАТ(-СУММ(ПСТР(A1;{1:3:5:7:9:11}+{0;1};1)*{1;3});10)
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37412847
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Ч.Контрольную сумму штрихкода можно еще так посчитать...
Отлично, за массивы констант я не подумал.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37413203
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Ч.Контрольную сумму штрихкода можно еще так посчитать тоже работает. а таким образом можно посчитать контрольную сумму любого штрих-кода?
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37413221
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
viktturЕсли длина текста разная, нужно доработать.
Ivan33да, длинна разная
А разве штрих-коды имеют разную длину?
Тогда формулу с массивами констант нужно доработать.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37413249
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для длины кода от 1 до 20 знаков:
=ОСТАТ(СУММ(ПСТР(A1-ПРАВСИМВ(A1)&ПОВТОР("0";20);{1:3:5:7:9:11:13:15:17:19}+{0;1};1)*{1;3});10)
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37413261
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
viktturА разве штрих-коды имеют разную длину?
Тогда формулу с массивами констант нужно доработать. да, имеют. например, может быть 128 символов, 256 и т. д.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37413267
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan33viktturА разве штрих-коды имеют разную длину?
Тогда формулу с массивами констант нужно доработать. да, имеют. например, может быть 128 символов, 256 и т. д. только вот вопрос, у всех ли одинаковы принципы подсчёта контрольного числа.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37413280
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan33только вот вопрос, у всех ли одинаковы принципы подсчёта контрольного числа. может Михаил подскажет.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37413304
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При такой длине кода (128, 256) формула с имассивами констант не подойдет.
{1:3:5:.....:253:255} - нормальненько, да?

Если подсчет контрольной суммы одинаков для любого штрих-кода, берите мою формулу, увеличив обработку количества символов.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37413324
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такой вот гибрид, должен работать по алгоритму из первого поста автора с кодами от 1 до 300 знаков:
Код: plaintext
=10-ПРАВСИМВ(СУММ(--ПСТР(A1-ПРАВСИМВ(A1)&ПОВТОР("0";300);СТРОКА(1:150)*2-{0;1};1))*{1;3})
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37425365
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan33 хочет продолжения :)
Нужна формула для определения контрольного числа. Если будет ошибка, нужно определить, из-за чего она возникла - или не то контрольное число, или не та длина кода.
Я правильно понял?
Ждем пример.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37425772
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
viktturЯ правильно понял?
Ждем пример. в основном интересует длина кода. то есть это тоже некоторый набор констант.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37425789
Михаил Ч.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan33,

Проверка штрихкода на подлинность
На основе материала из википедии
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37425961
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо, что подняли тему. Моя последняя формула ошибочна - выдает не одно число, а массив из двух чисел. Не там стоит скобка, да последний массив записан наоборот, нужно " {3;1} "
С учетом последних пожеланий исправленная:

Код: plaintext
1.
=ЕСЛИ(ИЛИ(ДЛСТР(B3)={8;13})*ЕЧИСЛО(B3);ЕСЛИ(10-ПРАВСИМВ(СУММ(--ПСТР(B3-ПРАВСИМВ(B3)&ПОВТОР("0";13);СТРОКА($1:$6)*2-{0;1};1)*{3;1}))=--ПРАВСИМВ(B3);"ОК";"Штрих-код не верен!");"Кто код испортил? Переписать!")

При длине строки не равной 8 или 13, или если код записан не числом - предупреждение;
Если контрольное число не совпадает - другое предупреждение.

Ivan33, у Вас еще небольшая ошибка: при протягивании формулы нужно было закрепить СТРОКА($1:$150) .
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37425964
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan33, в Вашем примере есть Проверка_4. Что это, не понял.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37426154
Михаил Ч.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vikttur
Код: plaintext
1.
=ЕСЛИ(ИЛИ(ДЛСТР(B3)={8;13})*ЕЧИСЛО(B3);ЕСЛИ(10-ПРАВСИМВ(СУММ(--ПСТР(B3-ПРАВСИМВ(B3)&ПОВТОР("0";13);СТРОКА($1:$6)*2-{0;1};1)*{3;1}))=--ПРАВСИМВ(B3);"ОК";"Штрих-код не верен!");"Кто код испортил? Переписать!")

Вариант с проверками:
Код: plaintext
=ЕСЛИ(И(ЕЧИСЛО(-B3);ИЛИ(ДЛСТР(B3)={8;12;13}));ЕСЛИ(ОСТАТ(СУММ(ПСТР(ТЕКСТ(B3;ПОВТОР(0;14));{1:3:5:7:9:11:13}+{0;1};1)*{3;1});10);"Ошибка в штрихкоде";"ОК");"Это не штрихкод")

Виктор, твой вариант формулы на штрихкодах 50705689 и 46009333 (EAN-8), вадает "Штрих-код не верен!", хотя штрихкод верный, а на коде 12345678 - "ОК", хотя он не верный
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37426166
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, ты прав. Я не смотрел логику вычисления разных стандартов, использовал логику первого поста автора. По авторскому варианту формула работает:
10-ПРАВСИМВ(СУММ(четных)*3+СУММ(нечетных))
По этой формуле в коде 50705689 контрольное число должно быть 7:
10-(ПРАВСИМВ((0+0+6)*3+(5+7+5+8))=7
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37426176
Михаил Ч.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vikttur,
Ссылку на Википедию давал выше, свою формулу делал строго по принцыпу, указанному там
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37426179
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел по ссылке. Да, расчет отличается.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37426181
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь я понял, почему автор упорно хотел формулу для 8- и 13-значных кодов :)
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37426339
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Ч.ИЛИ(ДЛСТР(B3)={8;12;13}))

Михаил, вот в этот кусочего можно включать и другие фиксированные размеры? например 128, 256?
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37426346
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
viktturIvan33, в Вашем примере есть Проверка_4. Что это, не понял.это попытка подсчитать повторы в диапазоне. То есть штрих-код не должен повторяться в этом диапазоне. То есть их может быть несколько, но не повторяться. Делать пытался это через массив, однако это не совсем то, что было надо. Была попытка подсчитать в одной ячейке количество повторов. Если их больше 1 для одного кода, то считать это повтором.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37426355
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
viktturIvan33, в Вашем примере есть Проверка_4. Что это, не понял. Поэтому, как оказалось, повторы подсчитываются относительно первой ячейки диапазона. Если смотреть пример, что приложил, то формула работает если её по строкам растянуть.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37426471
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
viktturIvan33, в Вашем примере есть Проверка_4. Что это, не понял. хотя на неё не обращайте внимание. она и такая сгодится.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37426850
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, просветите ещё по теме. Пытаюсь сделать то же с ИНН (см. ссылку на википедию). Там они, эти номера, могут быть 12 и 10 символов.

Что не очень понять пример, с авторОСТАТ(СУММ(ПСТР(ТЕКСТ(C27;ПОВТОР(0;14));{1:3:5:7:9:11:13}+{0;1};1)*{3;1});10)

для ИНН

500100732259 (12 символов)

и формулы

автор=СУММ(ПСТР(ТЕКСТ(C14;ПОВТОР(0;13));{1:2:3:4:5:6:7:8:9:10};1)*{7;2;4;10;3;5;9;4;6;8}) получается 1024, а должно 148. понимаю, что ерунда и нужен ещё какой-то параметр типа автор+{0;1}
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37426935
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С остатком нет сложностей:
Код: plaintext
=ОСТАТ(сумма;10)

Что суммирует СУММ()?
Код: plaintext
ПСТР(ТЕКСТ(C27;ПОВТОР(0;14));{1:3:5:7:9:11:13}+{0;1};1)*{3;1}
Упрощенно ПСТР(текст;нач_позиция;1)*{3;1}
Код: plaintext
текст=ТЕКСТ(C27;ПОВТОР(0;14)) 
- добавляем нули справа чтобы избежать ошибки, если длина кода меньше.
Код: plaintext
нач_позиция={1:3:5:7:9:11:13}+{0;1}
- последовательный выбор начальной позиции; с помощью +{0;1} создается два массива - нечетных чисел ({1:3:5:7:9:11:13}+0) и четных чисел ({1:3:5:7:9:11:13}+1). Т.е. функция ПСТР() выбирает один знак кода ("1" в конце функции), порядковый номер которого задается массивами четных и нечетных чисел.
ПСТР(...)*{3;1} - числа массива, который суммировался с нулем, умножается на 3, числа второго массива на 1.
В итоге массивы суммируются.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37426991
Михаил Ч.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для ИНН

ИНН12 (две контрольные цифры):
Код: plaintext
=И(ПРАВСИМВ(ОСТАТ(СУММ(ПСТР(B2;СТРОКА($1:$10);1)*{7:2:4:10:3:5:9:4:6:8});11))=ПСТР(B2;11;1);ПРАВСИМВ(ОСТАТ(СУММ(ПСТР(B2;СТРОКА($1:$11);1)*{3:7:2:4:10:3:5:9:4:6:8});11))=ПРАВСИМВ(B2))

ИНН10 (одна контрольная цифра):
Код: plaintext
=ПРАВСИМВ(ОСТАТ(СУММ(ПСТР(B3;СТРОКА($1:$9);1)*{2:4:10:3:5:9:4:6:8});11))=ПРАВСИМВ(B3)
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37427597
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Ч.Для ИНН

ИНН12 (две контрольные цифры):
Код: plaintext
=И(ПРАВСИМВ(ОСТАТ(СУММ(ПСТР(B2;СТРОКА($1:$10);1)*{7:2:4:10:3:5:9:4:6:8});11))=ПСТР(B2;11;1);ПРАВСИМВ(ОСТАТ(СУММ(ПСТР(B2;СТРОКА($1:$11);1)*{3:7:2:4:10:3:5:9:4:6:8});11))=ПРАВСИМВ(B2))

ИНН10 (одна контрольная цифра):
Код: plaintext
=ПРАВСИМВ(ОСТАТ(СУММ(ПСТР(B3;СТРОКА($1:$9);1)*{2:4:10:3:5:9:4:6:8});11))=ПРАВСИМВ(B3)
результат. почему-то в обоих случаях ЛОЖЬ.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37427598
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Ч.Для ИНН

ИНН12 (две контрольные цифры):
Код: plaintext
=И(ПРАВСИМВ(ОСТАТ(СУММ(ПСТР(B2;СТРОКА($1:$10);1)*{7:2:4:10:3:5:9:4:6:8});11))=ПСТР(B2;11;1);ПРАВСИМВ(ОСТАТ(СУММ(ПСТР(B2;СТРОКА($1:$11);1)*{3:7:2:4:10:3:5:9:4:6:8});11))=ПРАВСИМВ(B2))

ИНН10 (одна контрольная цифра):
Код: plaintext
=ПРАВСИМВ(ОСТАТ(СУММ(ПСТР(B3;СТРОКА($1:$9);1)*{2:4:10:3:5:9:4:6:8});11))=ПРАВСИМВ(B3)
или это формула массива? а в линейную формулу это не получится уложить?
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37427602
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Ч.Для ИНН

ИНН12 (две контрольные цифры):
Код: plaintext
=И(ПРАВСИМВ(ОСТАТ(СУММ(ПСТР(B2;СТРОКА($1:$10);1)*{7:2:4:10:3:5:9:4:6:8});11))=ПСТР(B2;11;1);ПРАВСИМВ(ОСТАТ(СУММ(ПСТР(B2;СТРОКА($1:$11);1)*{3:7:2:4:10:3:5:9:4:6:8});11))=ПРАВСИМВ(B2))

ИНН10 (одна контрольная цифра):
Код: plaintext
=ПРАВСИМВ(ОСТАТ(СУММ(ПСТР(B3;СТРОКА($1:$9);1)*{2:4:10:3:5:9:4:6:8});11))=ПРАВСИМВ(B3)
с массивом вроде работает. тут просто проверка тоже нужна. если, не уложить, то всё равно спасибо. сколько надо долбить экцель, чтобы такие штуки делать?
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37427607
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Ч.с массивом вроде работает. пардон, вот правильный с массивом.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37427610
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
viktturС остатком нет сложностей:
Код: plaintext
=ОСТАТ(сумма;10)

Что суммирует СУММ()?
Код: plaintext
ПСТР(ТЕКСТ(C27;ПОВТОР(0;14));{1:3:5:7:9:11:13}+{0;1};1)*{3;1}
Упрощенно ПСТР(текст;нач_позиция;1)*{3;1}
Код: plaintext
текст=ТЕКСТ(C27;ПОВТОР(0;14)) 
- добавляем нули справа чтобы избежать ошибки, если длина кода меньше.
Код: plaintext
нач_позиция={1:3:5:7:9:11:13}+{0;1}
- последовательный выбор начальной позиции; с помощью +{0;1} создается два массива - нечетных чисел ({1:3:5:7:9:11:13}+0) и четных чисел ({1:3:5:7:9:11:13}+1). Т.е. функция ПСТР() выбирает один знак кода ("1" в конце функции), порядковый номер которого задается массивами четных и нечетных чисел.
ПСТР(...)*{3;1} - числа массива, который суммировался с нулем, умножается на 3, числа второго массива на 1.
В итоге массивы суммируются.Виктор, спасибо.
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37428261
Михаил Ч.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan33или это формула массива? а в линейную формулу это не получится уложить?
Можно сделать и без массивного ввода:
Код: plaintext
=И(ПРАВСИМВ(ОСТАТ(СУММПРОИЗВ(ПСТР(B2;{1:2:3:4:5:6:7:8:9:10};1)*{7:2:4:10:3:5:9:4:6:8});11))=ПСТР(B2;11;1);ПРАВСИМВ(ОСТАТ(СУММПРОИЗВ(ПСТР(B2;{1:2:3:4:5:6:7:8:9:10:11};1)*{3:7:2:4:10:3:5:9:4:6:8});11))=ПРАВСИМВ(B2))

Код: plaintext
=ПРАВСИМВ(ОСТАТ(СУММПРОИЗВ(ПСТР(B3;{1:2:3:4:5:6:7:8:9};1)*{2:4:10:3:5:9:4:6:8});11))=ПРАВСИМВ(B3)

тема называется "Формула массива...", поэтому предложил соответствующую формулу.

Думаю, что вместо СТРОКА(...), в данном случае, лучше использовать массив констант. Будет уверенность, что формулы не нарушатся при вставке/удалении строк
...
Рейтинг: 0 / 0
Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
    #37430409
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Ч.
Код: plaintext
=И(ПРАВСИМВ(ОСТАТ(СУММПРОИЗВ(ПСТР(B2;{1:2:3:4:5:6:7:8:9:10};1)*{7:2:4:10:3:5:9:4:6:8});11))=ПСТР(B2;11;1);ПРАВСИМВ(ОСТАТ(СУММПРОИЗВ(ПСТР(B2;{1:2:3:4:5:6:7:8:9:10:11};1)*{3:7:2:4:10:3:5:9:4:6:8});11))=ПРАВСИМВ(B2))

Спасибо, Михаил, работает. Пришлось для применения с функцией ЕСЛИ (проверки) сделать промежуточные ячейки. А то формула с ЕСЛИ ругалась на уровень вложенности.
...
Рейтинг: 0 / 0
46 сообщений из 46, показаны все 2 страниц
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Формула массива для работы с номером в ячейке, суммирование чётных и нечётных, выделение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]