|
|
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
Всем доброго дня. Подскажите пожалуйста Как в Excel подсчитать кол-во значений по первой определенной цифре. Т. е. есть значения в ячейках (ячейка A1) - 356789 (ячейка A2) - 345874 (ячейка A3) - 245687 (ячейка A4) - 467576 (ячейка A5) - 634878 Мне надо чтобы он посчитал только значения начинающиеся на цифру 2 и 6. Т. е. в данном примере кол-во=2. Подскажите формулу пожалуйста а то не как не соображу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 17:53:08 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
=СУММПРОИЗВ((ЛЕВСИМВ($A$1:$A$5;1)="6")+(ЛЕВСИМВ($A$1:$A$5;1)="2")) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 18:06:00 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
ишо вариянт: =СУММПРОИЗВ(--(ЛЕВСИМВ(A1:A5)={"2","6"})) Внимание! 1) Ориентация матриц [A1:A5] и {"2","6"} обязательно должна быть разной: верт-гориз или гориз-верт 2) По моим данным (возможно неточным) в русск. локали гориз. разделитель матриц - запятая (,). Если это не так, то возможно это "backslash" (\), но на всякий случай прилагаю файл. KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 18:39:06 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
Лучше так если неохота складывать! =СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ЛЕВСИМВ($A$1:$A$5;1);"26"))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 18:49:39 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
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] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 19:15:43 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
KL (XL) =СУММПРОИЗВ(--(ЛЕВСИМВ(A1:A5)={"2","6"})) Внимание! 1) Ориентация матриц [A1:A5] и {"2","6"} обязательно должна быть разной: верт-гориз или гориз-верт 2) По моим данным (возможно неточным) в русск. локали гориз. разделитель матриц - запятая (,). Если это не так, то возможно это "backslash" (\), но на всякий случай прилагаю файл. Кстати, 3-й пункт примечаний: константа массива {"2","6"} может вполне быть заменена на (в этом случае горизонтальный) ранг ячеек KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 19:21:18 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
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"} Ну я и употребил слово лучше в том плане что без риска вроде, или что-то вроде того! Вообщем не спорю я! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 19:23:03 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
=СУММПРОИЗВ(--(ЛЕВСИМВ(A1:A10000)={"2","6"})) =СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ЛЕВСИМВ($A$1:$A$10000;1);"26"))) При 10 пересчётах разница всего 0,5% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 19:54:11 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
DeggasadНу ладно тебе, не так выразился! Это ж ты меня этим формулам научил, я не задираюсь. Дык и я же вроде ничего обидного не говорю ("Я ж не просто балабоню, я ж политику веду!") DeggasadПросто тыж написал, что мол проблемы могут быть из-за того что по разному массивы записываются. Имелся ввиду ручной ввод констант массива, а при перемещении файла из локали в локаль разделители меняются автоматически. DeggasadУ меня например по столбцам такой разделитель {"2";"6"} Так это тот, который я называю вертикальным и он по-моему у всех одинаковый. В любом случае проверить какие у тебя разделители массивов элементарно просто: 1) вводим в ячейку формулу =A1:B1 2) в панели формул выбираем курсором все формулу 3) жмем на F9 и узнаем какой у нас горизонтальный разделитель повторяем эти шаги для формулы =A1:A2 и узнаем какой у нас вертикальный разделитель KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 20:03:30 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
Deggasad =СУММПРОИЗВ(--(ЛЕВСИМВ(A1:A10000)={"2","6"})) =СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ЛЕВСИМВ($A$1:$A$10000;1);"26"))) При 10 пересчётах разница всего 0,5% опиши подробнее условия и метод/инструмент измерения ;-) KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 20:05:35 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
KL (XL) опиши подробнее условия и метод/инструмент измерения ;-) KL [MVP - Microsoft Excel] Сдесь на форуме брал файл с макросом вот им и пользуюсь для измерения. А Если про скорость говорить, то вот вариант - бьёт рекорды =СУММПРОИЗВ(ЕЧИСЛО(ПОИСК("6?????";$A$1:$A$10000;1))+ЕЧИСЛО(ПОИСК("2?????";$A$1:$A$10000;1))) Но правда длинный раскаряка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 20:09:51 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
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] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 20:41:58 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
файл с промерами отцепился на ходу KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 20:47:58 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
Разговор что называется зашёл в тупик. Прежде чем написать следующие высказывания, Хочу заметить что в рамках данной задачи наверное все это не так уж важно. И цели мы наверное уже достигли! 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) почему файлы никогда не архивируешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 23:11:41 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
Deggasad...я так и не смог создать ситуацию когда она будет медленной см. ниже (заполнить данными) + скопировать формулу еще в 10-20 ячеек. Deggasad...На древней машине попробовал. 733 Cel, 128 Ram Результаты прилагаю. Мой чемпион - остаётся чемпионом. Фиг его знает. По сути всё равно уже! Просто написал что есть хочешь верь - хочешь не верь! Да верю я тебе, просто ты теперь заполни все (или почти все) 30.000 ячеек значениями и промерь скорость еще разок. Глядишь, чемпион в аутсайдеры откатится :-) Excel хитрый - он пустые ячейки индексирует и в функциях точного поиска после последней ячейки с данными пустые в расчет не берет, Smart Calculation обзывается ;-) DeggasadЗ.ы.: Вопрос на последок, KL (XL) почему файлы никогда не архивируешь? Привычка - все что до 300KB не архивировирую. KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2007, 00:31:52 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
KL (XL) Да верю я тебе, просто ты теперь заполни все (или почти все) 30.000 ячеек значениями и промерь скорость еще разок. Глядишь, чемпион в аутсайдеры откатится :-) В присланном вчера примере 2 и 3 замер и так считались с полностью заполненными ячейками На всякий случай повторно выклвдываю файл добавил сегодняшние замеры! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2007, 08:09:35 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
Тогда, вероятно, дело в разнице между MSO2003 и MSO2007 (и/или WinXP и Vista). Сегодня вечером проверю на MSO2003 в VPC. KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2007, 12:32:15 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
KL (XL)Тогда, вероятно, дело в разнице между MSO2003 и MSO2007 (и/или WinXP и Vista). Сегодня вечером проверю на MSO2003 в VPC. KL [MVP - Microsoft Excel] У меня только одна теория, что возможно разница в производительности компа. Например для последнего варианта вполне достаточно 256 оперативки и больше он уже не прирастёт в скорости готь скока давай, а для остальных например прирост оперативки даёт прирост скорости. Или что-то вроде этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2007, 13:02:48 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
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] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2007, 18:33:39 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
Получается 2007 Оффис гораздо быстрее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2007, 19:20:49 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
DeggasadПолучается 2007 Оффис гораздо быстрее? Да, это факт иначе 1.048.576 х 16.384 стало бы полным завалом. Но тут еще несомненно вмешался тот факт, что в моем ноутбуке доступны 3.326 Мб памяти (из 4 Гб установленных для 64-бит), а для VPC я выделил лишь 1.024 Мб. Правда разница в свободной памяти не так впечатляюща, т.к. Vista Ultimate в первом случае сразу отгрызает 1.370 Мб в то время как XP во втором случае обходится 105 Мб :-) KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2007, 19:38:32 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
KL (XL) - Для измерения скорости я пользуюсь надстройкой RangeCalc (Чарльза Уильямса): http://www.decisionmodels.com/Downloads/RangeCalc.zip - Очень важно: для правильного измерения скорости нелетучих формул обязательно должен быть установлен ручной пересчет формул KL [MVP - Microsoft Excel] Я не понял вот чего. Почему в новой книге без формул при выделении первых десяти столбцов RangeCalc "считает" больше секнуды, если считать нечего? При выделении всей книги мой комп зависает. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2007, 11:01:52 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
Сергей06Я не понял вот чего. Почему в новой книге без формул при выделении первых десяти столбцов RangeCalc "считает" больше секнуды, если считать нечего? При выделении всей книги мой комп зависает. :) - Ну наверное потому, что программа не проверяет есть ли в ячейке формула или нет, а форсированно запускает ее пересчет. На это уходит некоторое время: 10 столбцов - это 655.360 ячеек по 0.0015 миллисек каждая, не так уж и плохо. - А как можно выбрать всю книгу? KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 01:36:57 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
KL (XL) - Ну наверное потому, что программа не проверяет есть ли в ячейке формула или нет, а форсированно запускает ее пересчет. На это уходит некоторое время: 10 столбцов - это 655.360 ячеек по 0.0015 миллисек каждая, не так уж и плохо. - А как можно выбрать всю книгу? KL [MVP - Microsoft Excel] 1. Ага. Т.е. из значениякоторое выдала программа нужно вычесть (примерно) 0,0015 милисекунд*кол-во ячеек. Или эксель тоже тратитна это время?. 2. :-) не верно написал. Весь лист. (наверное книга состояла из одного листа, который я весь и выделил) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 08:50:56 |
|
||
|
Подсчет по первой цифре
|
|||
|---|---|---|---|
|
#18+
Сергей061. Ага. Т.е. из значениякоторое выдала программа нужно вычесть (примерно) 0,0015 милисекунд*кол-во ячеек. Или эксель тоже тратитна это время?.Да, и еще время, которое процессор потратил на другие приложения, или когда память была недоступна, или... :-) Смысл этой надстройки не в абсолютных временных значениях (слишком много переменных), а в возможности сравнивать. Сергей062. :-) не верно написал. Весь лист. (наверное книга состояла из одного листа, который я весь и выделил)А-а. Ну тогда, возможно, дело в кол-ве ячеек и в мощности компа? KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 11:35:15 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=34500467&tid=2182650]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 200ms |
| total: | 348ms |

| 0 / 0 |
