powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Подсчет по первой цифре
25 сообщений из 27, страница 1 из 2
Подсчет по первой цифре
    #34500288
Roman20
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго дня.
Подскажите пожалуйста
Как в Excel подсчитать кол-во значений по первой определенной цифре.
Т. е. есть значения в ячейках
(ячейка A1) - 356789
(ячейка A2) - 345874
(ячейка A3) - 245687
(ячейка A4) - 467576
(ячейка A5) - 634878
Мне надо чтобы он посчитал только значения начинающиеся на цифру 2 и 6. Т. е. в данном примере кол-во=2.
Подскажите формулу пожалуйста а то не как не соображу.
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34500329
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=СУММПРОИЗВ((ЛЕВСИМВ($A$1:$A$5;1)="6")+(ЛЕВСИМВ($A$1:$A$5;1)="2"))
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34500400
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ишо вариянт:

=СУММПРОИЗВ(--(ЛЕВСИМВ(A1:A5)={"2","6"}))

Внимание!
1) Ориентация матриц [A1:A5] и {"2","6"} обязательно должна быть разной: верт-гориз или гориз-верт
2) По моим данным (возможно неточным) в русск. локали гориз. разделитель матриц - запятая (,). Если это не так, то возможно это "backslash" (\), но на всякий случай прилагаю файл.

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34500425
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше так если неохота складывать!

=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ЛЕВСИМВ($A$1:$A$5;1);"26")))
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34500467
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadЛучше так если неохота складывать!

=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ЛЕВСИМВ($A$1:$A$5;1);"26")))
Лучше говоришь? В XL2007 для 30.000 ячеек, по-сравнению с моей формулой, среднее время для пяти полных пересчетов было след.:

=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ЛЕВСИМВ($A$1:$A$5;1);"26")))
на 20% дольше

=СУММПРОИЗВ((ЛЕВСИМВ($A$1:$A$5;1)="6")+(ЛЕВСИМВ($A$1:$A$5;1)="2"))
на 73% дольше

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34500477
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL) =СУММПРОИЗВ(--(ЛЕВСИМВ(A1:A5)={"2","6"}))

Внимание!
1) Ориентация матриц [A1:A5] и {"2","6"} обязательно должна быть разной: верт-гориз или гориз-верт
2) По моим данным (возможно неточным) в русск. локали гориз. разделитель матриц - запятая (,). Если это не так, то возможно это "backslash" (\), но на всякий случай прилагаю файл.

Кстати, 3-й пункт примечаний: константа массива {"2","6"} может вполне быть заменена на (в этом случае горизонтальный) ранг ячеек

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34500481
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL) DeggasadЛучше так если неохота складывать!

=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ЛЕВСИМВ($A$1:$A$5;1);"26")))
Лучше говоришь? В XL2007 для 30.000 ячеек, по-сравнению с моей формулой, среднее время для пяти полных пересчетов было след.:

=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ЛЕВСИМВ($A$1:$A$5;1);"26")))
на 20% дольше

=СУММПРОИЗВ((ЛЕВСИМВ($A$1:$A$5;1)="6")+(ЛЕВСИМВ($A$1:$A$5;1)="2"))
на 73% дольше

KL
[MVP - Microsoft Excel]

Ну ладно тебе, не так выразился! Это ж ты меня этим формулам научил, я не задираюсь.
Просто тыж написал, что мол проблемы могут быть из-за того что по разному массивы записываются. У меня например по столбцам такой разделитель {"2";"6"}
Ну я и употребил слово лучше в том плане что без риска вроде, или что-то вроде того!
Вообщем не спорю я!
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34500523
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=СУММПРОИЗВ(--(ЛЕВСИМВ(A1:A10000)={"2","6"}))

=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ЛЕВСИМВ($A$1:$A$10000;1);"26")))

При 10 пересчётах разница всего 0,5%
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34500540
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadНу ладно тебе, не так выразился! Это ж ты меня этим формулам научил, я не задираюсь.

Дык и я же вроде ничего обидного не говорю ("Я ж не просто балабоню, я ж политику веду!")

DeggasadПросто тыж написал, что мол проблемы могут быть из-за того что по разному массивы записываются.

Имелся ввиду ручной ввод констант массива, а при перемещении файла из локали в локаль разделители меняются автоматически.

DeggasadУ меня например по столбцам такой разделитель {"2";"6"}

Так это тот, который я называю вертикальным и он по-моему у всех одинаковый. В любом случае проверить какие у тебя разделители массивов элементарно просто:

1) вводим в ячейку формулу =A1:B1
2) в панели формул выбираем курсором все формулу
3) жмем на F9 и узнаем какой у нас горизонтальный разделитель

повторяем эти шаги для формулы =A1:A2 и узнаем какой у нас вертикальный разделитель

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34500545
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasad =СУММПРОИЗВ(--(ЛЕВСИМВ(A1:A10000)={"2","6"}))

=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ЛЕВСИМВ($A$1:$A$10000;1);"26")))

При 10 пересчётах разница всего 0,5%

опиши подробнее условия и метод/инструмент измерения ;-)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34500548
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)

опиши подробнее условия и метод/инструмент измерения ;-)

KL
[MVP - Microsoft Excel]

Сдесь на форуме брал файл с макросом вот им и пользуюсь для измерения.

А Если про скорость говорить, то вот вариант - бьёт рекорды

=СУММПРОИЗВ(ЕЧИСЛО(ПОИСК("6?????";$A$1:$A$10000;1))+ЕЧИСЛО(ПОИСК("2?????";$A$1:$A$10000;1)))

Но правда длинный раскаряка
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34500583
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadСдесь на форуме брал файл с макросом вот им и пользуюсь для измерения.

Hmmmm...

DeggasadА Если про скорость говорить, то вот вариант - бьёт рекорды

=СУММПРОИЗВ(ЕЧИСЛО(ПОИСК("6?????";$A$1:$A$10000;1))+ЕЧИСЛО(ПОИСК("2?????";$A$1:$A$10000;1)))

Не хочу тебя расстраивать, но эта формула действительно бьёт рекорды только по медлительности. К тому же она построена на [шаткой] гипотезе о том, что все числа состоят из 6 знаков ;-)

- Для измерения скорости я пользуюсь надстройкой RangeCalc (Чарльза Уильямса): http://www.decisionmodels.com/Downloads/RangeCalc.zip

- Очень важно: для правильного измерения скорости нелетучих формул обязательно должен быть установлен ручной пересчет формул

- Прилагаю файл с моими промерами (все в милисекундах). Абсолютные значения естественно будут варьировать взависимости от версий, памяти, процессора и проч.

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34500586
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
файл с промерами отцепился на ходу

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34500727
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разговор что называется зашёл в тупик. Прежде чем написать следующие высказывания, Хочу заметить что в рамках данной задачи наверное все это не так уж важно. И цели мы наверное уже достигли!

KL (XL)
Не хочу тебя расстраивать, но эта формула действительно бьёт рекорды только по медлительности.


и не растроишь, так как я так и не смог создать ситуацию когда она будет медленной

KL (XL)
К тому же она построена на [шаткой] гипотезе о том, что все числа состоят из 6 знаков ;-)

Да ладно уже, я просто привёл самый быстрый пример, а так если скорость не важна я бы конечно другим воспользовался

KL (XL)
- Для измерения скорости я пользуюсь надстройкой RangeCalc (Чарльза Уильямса): http://www.decisionmodels.com/Downloads/RangeCalc.zip
- Очень важно: для правильного измерения скорости нелетучих формул обязательно должен быть установлен ручной пересчет формул


Скачал - Запустил - Ручной пересчёт включил


KL (XL)
- Прилагаю файл с моими промерами (все в милисекундах). Абсолютные значения естественно будут варьировать взависимости от версий, памяти, процессора и проч.


Да варирируют. На древней машине попробовал. 733 Cel, 128 Ram
Результаты прилагаю. Мой чемпион - остаётся чемпионом. Фиг его знает. По сути всё равно уже!
Просто написал что есть хочешь верь - хочешь не верь!


Да и формулку одну я поменял нужно вместо

=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ЛЕВСИМВ($A$1:$A$5;1);"26")))

писать

=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(--ЛЕВСИМВ($A$1:$A$5;1);"26")))

А то пустоты считала до этого, не обратил внимания!

З.ы.: Вопрос на последок, KL (XL) почему файлы никогда не архивируешь?
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34500785
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasad...я так и не смог создать ситуацию когда она будет медленной
см. ниже (заполнить данными) + скопировать формулу еще в 10-20 ячеек.

Deggasad...На древней машине попробовал. 733 Cel, 128 Ram
Результаты прилагаю. Мой чемпион - остаётся чемпионом. Фиг его знает. По сути всё равно уже!
Просто написал что есть хочешь верь - хочешь не верь!
Да верю я тебе, просто ты теперь заполни все (или почти все) 30.000 ячеек значениями и промерь скорость еще разок. Глядишь, чемпион в аутсайдеры откатится :-) Excel хитрый - он пустые ячейки индексирует и в функциях точного поиска после последней ячейки с данными пустые в расчет не берет, Smart Calculation обзывается ;-)

DeggasadЗ.ы.: Вопрос на последок, KL (XL) почему файлы никогда не архивируешь?
Привычка - все что до 300KB не архивировирую.

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34500954
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)
Да верю я тебе, просто ты теперь заполни все (или почти все) 30.000 ячеек значениями и промерь скорость еще разок. Глядишь, чемпион в аутсайдеры откатится :-)

В присланном вчера примере 2 и 3 замер и так считались с полностью заполненными ячейками
На всякий случай повторно выклвдываю файл добавил сегодняшние замеры!
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34501748
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда, вероятно, дело в разнице между MSO2003 и MSO2007 (и/или WinXP и Vista). Сегодня вечером проверю на MSO2003 в VPC.

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34501900
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)Тогда, вероятно, дело в разнице между MSO2003 и MSO2007 (и/или WinXP и Vista). Сегодня вечером проверю на MSO2003 в VPC.

KL
[MVP - Microsoft Excel]

У меня только одна теория, что возможно разница в производительности компа.
Например для последнего варианта вполне достаточно 256 оперативки и больше он уже не прирастёт в скорости готь скока давай, а для остальных например прирост оперативки даёт прирост скорости. Или что-то вроде этого.
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34503269
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasad KL (XL)Тогда, вероятно, дело в разнице между MSO2003 и MSO2007 (и/или WinXP и Vista). Сегодня вечером проверю на MSO2003 в VPC.

У меня только одна теория, что возможно разница в производительности компа.
Например для последнего варианта вполне достаточно 256 оперативки и больше он уже не прирастёт в скорости готь скока давай, а для остальных например прирост оперативки даёт прирост скорости. Или что-то вроде этого.

Похоже все-таки, что подтвердилось мое предположение и дело в версии. И хотя у меня в MSO2003 время больше, т.к. у меня Office установлен на VPC, процентные показатели полностью совпали с твоими. Из этого я заключаю, что MSO2003 и MSO2007 по-разному считают формулы массива и практически одинаково функции точного поиска. Скорее всего дело в этом:
http://msdn2.microsoft.com/en-us/library/aa730921.aspx#office2007excelperf_ExcelPerformanceImprovements
но надо будет разбираться

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34503379
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получается 2007 Оффис гораздо быстрее?
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34503401
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadПолучается 2007 Оффис гораздо быстрее?

Да, это факт иначе 1.048.576 х 16.384 стало бы полным завалом.

Но тут еще несомненно вмешался тот факт, что в моем ноутбуке доступны 3.326 Мб памяти (из 4 Гб установленных для 64-бит), а для VPC я выделил лишь 1.024 Мб.

Правда разница в свободной памяти не так впечатляюща, т.к. Vista Ultimate в первом случае сразу отгрызает 1.370 Мб в то время как XP во втором случае обходится 105 Мб :-)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34603936
Сергей06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)
- Для измерения скорости я пользуюсь надстройкой RangeCalc (Чарльза Уильямса): http://www.decisionmodels.com/Downloads/RangeCalc.zip

- Очень важно: для правильного измерения скорости нелетучих формул обязательно должен быть установлен ручной пересчет формул

KL
[MVP - Microsoft Excel]

Я не понял вот чего.
Почему в новой книге без формул при выделении первых десяти столбцов RangeCalc "считает" больше секнуды, если считать нечего? При выделении всей книги мой комп зависает.
:)
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34606375
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей06Я не понял вот чего.
Почему в новой книге без формул при выделении первых десяти столбцов RangeCalc "считает" больше секнуды, если считать нечего? При выделении всей книги мой комп зависает.
:)

- Ну наверное потому, что программа не проверяет есть ли в ячейке формула или нет, а форсированно запускает ее пересчет. На это уходит некоторое время: 10 столбцов - это 655.360 ячеек по 0.0015 миллисек каждая, не так уж и плохо.

- А как можно выбрать всю книгу?

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34606595
Сергей06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)
- Ну наверное потому, что программа не проверяет есть ли в ячейке формула или нет, а форсированно запускает ее пересчет. На это уходит некоторое время: 10 столбцов - это 655.360 ячеек по 0.0015 миллисек каждая, не так уж и плохо.

- А как можно выбрать всю книгу?

KL
[MVP - Microsoft Excel]

1. Ага. Т.е. из значениякоторое выдала программа нужно вычесть (примерно) 0,0015 милисекунд*кол-во ячеек. Или эксель тоже тратитна это время?.

2. :-) не верно написал. Весь лист.
(наверное книга состояла из одного листа, который я весь и выделил)
...
Рейтинг: 0 / 0
Подсчет по первой цифре
    #34610062
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей061. Ага. Т.е. из значениякоторое выдала программа нужно вычесть (примерно) 0,0015 милисекунд*кол-во ячеек. Или эксель тоже тратитна это время?.Да, и еще время, которое процессор потратил на другие приложения, или когда память была недоступна, или... :-) Смысл этой надстройки не в абсолютных временных значениях (слишком много переменных), а в возможности сравнивать.

Сергей062. :-) не верно написал. Весь лист.
(наверное книга состояла из одного листа, который я весь и выделил)А-а. Ну тогда, возможно, дело в кол-ве ячеек и в мощности компа?

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Подсчет по первой цифре
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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