Помогите, пожалуйста: у меня в файле есть множество дуплетов вида: страна(ы), город(а).
Украина Болград Израиль Тель-Авив Сирия Дамаск Россия, Китай Екатеринбург, Пекин Иордания Амман Испания Сисур-Майор Россия Москва США Фредония Германия Берлин Франция Париж Франция Париж ...
Мне нужно под этим списком подсчитать количество вхождений каждой страны и каждого родода. Задача нетрудная, даже учитывая то, что необходимо, если в одной ячейке 2 страны/города, чтобы каждая учитывается как 1/2, если 3, то как 1/3 и так далее (делю на количество запятых+1). Всё, что я написал до данного момента - уже реализовано (см. файл приложение - посчёт внизу на области с жёлтым фоном).
Но вот как вы можете видеть, для того, чтобы подсчитать число упоминаний, например, города "Париж", я должен знать, что он в списке есть и добавить его к перечню вариантов для подсчёта в "жёлтой области". А что если исходить из того, что я вообще не знаю, какие города/страны могут попасться в файле? Можно ли просто как-то подсчитать все встречаемые варианты, не думая всякий раз: а, этот новый, значит его нужно добавить в список подсчитываемых вариантов внизу.
Спасибо.
Здравствуйте, господа
Помогите, пожалуйста: у меня в файле есть множество дуплетов вида: страна(ы), город(а).
Украина Болград Израиль Тель-Авив Сирия Дамаск Россия, Китай Екатеринбург, Пекин Иордания Амман Испания Сисур-Майор Россия Москва США Фредония Германия Берлин Франция Париж Франция Париж ...
Мне нужно под этим списком подсчитать количество вхождений каждой страны и каждого родода. Задача нетрудная, даже учитывая то, что необходимо, если в одной ячейке 2 страны/города, чтобы каждая учитывается как 1/2, если 3, то как 1/3 и так далее (делю на количество запятых+1). Всё, что я написал до данного момента - уже реализовано (см. файл приложение - посчёт внизу на области с жёлтым фоном).
Но вот как вы можете видеть, для того, чтобы подсчитать число упоминаний, например, города "Париж", я должен знать, что он в списке есть и добавить его к перечню вариантов для подсчёта в "жёлтой области". А что если исходить из того, что я вообще не знаю, какие города/страны могут попасться в файле? Можно ли просто как-то подсчитать все встречаемые варианты, не думая всякий раз: а, этот новый, значит его нужно добавить в список подсчитываемых вариантов внизу.
Это не очень принципиально, но ниже удобнее, поскольку таблица, конечно, в реальности состоит далеко не из двух столбцов город+страна. А это имеет значение, да?
Цитата (AndreTM)
Список будет пополняться?
Да, в том-то и дело.
Цитата (AndreTM)
Получить надо именно формулами?
Да.
Цитата (AndreTM)
Дополнительные столбцы можно задействовать?
Хорошо бы не задействовать (поскольку, опять же, таблица в реальности огромная), но можно для начала, как эксперимент, попробовать с ними, а потом - подумать, как бы из извести
AndreTM,
Цитата (AndreTM)
Надо получить именно ниже данного списка?
Это не очень принципиально, но ниже удобнее, поскольку таблица, конечно, в реальности состоит далеко не из двух столбцов город+страна. А это имеет значение, да?
Цитата (AndreTM)
Список будет пополняться?
Да, в том-то и дело.
Цитата (AndreTM)
Получить надо именно формулами?
Да.
Цитата (AndreTM)
Дополнительные столбцы можно задействовать?
Хорошо бы не задействовать (поскольку, опять же, таблица в реальности огромная), но можно для начала, как эксперимент, попробовать с ними, а потом - подумать, как бы из известиdum
dum, я бы всё же задействовал макросы. На крайний случай - хотя бы MSQuery. Поскольку таблица данных наращивается, формулы достаточно тяжелые, и т.д. Вот я только не понимаю - зачем динамически рассчитывать эту статистику? Понадобилось - сделали выборку с нужным расчетом - сбросили её в нужное место любого листа...
dum, я бы всё же задействовал макросы. На крайний случай - хотя бы MSQuery. Поскольку таблица данных наращивается, формулы достаточно тяжелые, и т.д. Вот я только не понимаю - зачем динамически рассчитывать эту статистику? Понадобилось - сделали выборку с нужным расчетом - сбросили её в нужное место любого листа...AndreTM
а как таблица будет пополняться,если результат внизу таблицы?если формулы,то,как я понимаю,это очень усложнится.или я не прав?
Сейчас просто верхние 500 строк отведены под данные, а начиная с 501 ведётся, в частности, подсчёт городов. При этом их эти 500 строк пока заполнено 156, например. Поскольку эта таблица ведётся по годам, то за год вряд ли число строк выйдет за пределы 500.
Цитата (AndreTM)
Понадобилось - сделали выборку с нужным расчетом - сбросили её в нужное место любого листа...
Выборка нужна бывает довольно часто и в неожиданные моменты времени, потому лучше, чтобы она была готова всегда. И хотелось избежать повторяющихся операций - раньше мы и делали выборку в ручную, вот потому и решили автоматизировать со временем. Или её как-то автоматически делать можно?
Цитата (Формуляр)
а чем сводная таблица не устраивает?
Любопытно... А расскажите, пожалуйста, в двух словах, что это и как это делать? Из того, чем не устраивает, пока вижу, что колонка "страна" пуста и что есть трудности с учётом дробного участия (когда несколько городов/стран через запятую)
Простите за задержку с ответами, господа.
Цитата (китин)
а как таблица будет пополняться,если результат внизу таблицы?если формулы,то,как я понимаю,это очень усложнится.или я не прав?
Сейчас просто верхние 500 строк отведены под данные, а начиная с 501 ведётся, в частности, подсчёт городов. При этом их эти 500 строк пока заполнено 156, например. Поскольку эта таблица ведётся по годам, то за год вряд ли число строк выйдет за пределы 500.
Цитата (AndreTM)
Понадобилось - сделали выборку с нужным расчетом - сбросили её в нужное место любого листа...
Выборка нужна бывает довольно часто и в неожиданные моменты времени, потому лучше, чтобы она была готова всегда. И хотелось избежать повторяющихся операций - раньше мы и делали выборку в ручную, вот потому и решили автоматизировать со временем. Или её как-то автоматически делать можно?
Цитата (Формуляр)
а чем сводная таблица не устраивает?
Любопытно... А расскажите, пожалуйста, в двух словах, что это и как это делать? Из того, чем не устраивает, пока вижу, что колонка "страна" пуста и что есть трудности с учётом дробного участия (когда несколько городов/стран через запятую)dum
Выборка нужна бывает довольно часто и в неожиданные моменты времени, потому лучше, чтобы она была готова всегда. И хотелось избежать повторяющихся операций - раньше мы и делали выборку в ручную, вот потому и решили автоматизировать со временем. Или её как-то автоматически делать можно?
Так я это и имею в виду: вместо того, чтобы нагружать таблицу пересчётами при любом чихе в исходных данных (выборка-то в это время не нужна, ведь вы изменяете исходник, а не строите отчёт) - макрос формирует выборку нужного вам вида по запросу, когда возникла потребность - тогда и выбирается. И да, естественно, это делается "автоматически", в том плане, что от пользователя требуется только запустить соответствующий макрос. Кроме того, можно доавтоматизироваться до того, что отслеживать изменения в исходных данных, и если их не было - то возвращать "по внешнему запросу" уже имеющуюся выборку, не пересчитывая каждый раз заново.
У меня есть несколько вопросов: - Как учитываются дубли (повторяющиеся строки)? Они все входят в суммарное количество? - Как быть с нарушениями формата (в одном из столбцов количество запятых не совпадает с тем же в другом столбце)? Предупреждать? Пытаться исправить (как)? - Есть ли ограничение на количество "перечислений", то есть сколько максимум может быть городов/стран в ячейке, когда они записаны через запятую (3,5,сколько угодно)?
Цитата (dum)
Выборка нужна бывает довольно часто и в неожиданные моменты времени, потому лучше, чтобы она была готова всегда. И хотелось избежать повторяющихся операций - раньше мы и делали выборку в ручную, вот потому и решили автоматизировать со временем. Или её как-то автоматически делать можно?
Так я это и имею в виду: вместо того, чтобы нагружать таблицу пересчётами при любом чихе в исходных данных (выборка-то в это время не нужна, ведь вы изменяете исходник, а не строите отчёт) - макрос формирует выборку нужного вам вида по запросу, когда возникла потребность - тогда и выбирается. И да, естественно, это делается "автоматически", в том плане, что от пользователя требуется только запустить соответствующий макрос. Кроме того, можно доавтоматизироваться до того, что отслеживать изменения в исходных данных, и если их не было - то возвращать "по внешнему запросу" уже имеющуюся выборку, не пересчитывая каждый раз заново.
У меня есть несколько вопросов: - Как учитываются дубли (повторяющиеся строки)? Они все входят в суммарное количество? - Как быть с нарушениями формата (в одном из столбцов количество запятых не совпадает с тем же в другом столбце)? Предупреждать? Пытаться исправить (как)? - Есть ли ограничение на количество "перечислений", то есть сколько максимум может быть городов/стран в ячейке, когда они записаны через запятую (3,5,сколько угодно)?AndreTM
Skype: andre.tm.007 Donate: Qiwi: 9517375010
Сообщение отредактировал AndreTM - Пятница, 07.06.2013, 20:06
Как учитываются дубли (повторяющиеся строки)? Они все входят в суммарное количество?
Да, конечно. Если есть строки
Москва Москва Минск, Москва
То у Москвы - 2,5
Цитата (AndreTM)
Как быть с нарушениями формата (в одном из столбцов количество запятых не совпадает с тем же в другом столбце)? Предупреждать? Пытаться исправить (как)?
Думаю, не пытаться исправлять. Таблицу ведут ответственные люди. Кроме того, это штатная ситуация. Пример - страна "Италия", города "Рим, Неаполь" (стране - 1, городам по половинке). Мы же не будем полностью реализовывать проверку корректности: чтобы макрос проверял есть ли в одной из перечисленных стран нужные города. А так - да, запятых в странах не может быть больше, чем в городах, но я думаю, что и это проверять не стоит.
Цитата (AndreTM)
Есть ли ограничение на количество "перечислений", то есть сколько максимум может быть городов/стран в ячейке, когда они записаны через запятую (3,5,сколько угодно)
В теории - сколько угодно. На практике, в 60% случаев одна, в остальных - две, если не считать редчайшие варианты: однажды было 3, однажды - 6. Когда 6, очевидно, каждой стране по 1/6.
AndreTM, спасибо за ответ.
Цитата (AndreTM)
Как учитываются дубли (повторяющиеся строки)? Они все входят в суммарное количество?
Да, конечно. Если есть строки
Москва Москва Минск, Москва
То у Москвы - 2,5
Цитата (AndreTM)
Как быть с нарушениями формата (в одном из столбцов количество запятых не совпадает с тем же в другом столбце)? Предупреждать? Пытаться исправить (как)?
Думаю, не пытаться исправлять. Таблицу ведут ответственные люди. Кроме того, это штатная ситуация. Пример - страна "Италия", города "Рим, Неаполь" (стране - 1, городам по половинке). Мы же не будем полностью реализовывать проверку корректности: чтобы макрос проверял есть ли в одной из перечисленных стран нужные города. А так - да, запятых в странах не может быть больше, чем в городах, но я думаю, что и это проверять не стоит.
Цитата (AndreTM)
Есть ли ограничение на количество "перечислений", то есть сколько максимум может быть городов/стран в ячейке, когда они записаны через запятую (3,5,сколько угодно)
В теории - сколько угодно. На практике, в 60% случаев одна, в остальных - две, если не считать редчайшие варианты: однажды было 3, однажды - 6. Когда 6, очевидно, каждой стране по 1/6.dum
Подловили... Ну что ж, можно конечно, ввести фиктивный "Париж" сюда, но... Да, тут есть нюансы. Давайте просто не обращать на это внимание, а просто считать - странам по половине, городу - 1. В итоге сумма по городам страны не равна числу, данному стране, но проблемы начались бы, если бы возникли страны без городов вообще (например, если бы тут было написано "Италия, Новая Зеландия"). Хотя даже это не страшно. В общем - не берите в голову, пожалуйста.
Цитата (AndreTM)
То есть можно ограничиться, например, 9 запятыми (10 стран или городов)?
Если это принципиально, то думаю, что можно.
P.S. Уезжаю в коммандировку, простите за возможные задержки с ответами.
Цитата (AndreTM)
Обнаружено (1): Италия, Франция - Чезена
Подловили... Ну что ж, можно конечно, ввести фиктивный "Париж" сюда, но... Да, тут есть нюансы. Давайте просто не обращать на это внимание, а просто считать - странам по половине, городу - 1. В итоге сумма по городам страны не равна числу, данному стране, но проблемы начались бы, если бы возникли страны без городов вообще (например, если бы тут было написано "Италия, Новая Зеландия"). Хотя даже это не страшно. В общем - не берите в голову, пожалуйста.
Цитата (AndreTM)
То есть можно ограничиться, например, 9 запятыми (10 стран или городов)?
Если это принципиально, то думаю, что можно.
P.S. Уезжаю в коммандировку, простите за возможные задержки с ответами.dum
Сообщение отредактировал dum - Вторник, 11.06.2013, 12:55