Страницы: 1
RSS
Промежуточные итоги - исключить повторяющиеся данные
 
Есть таблица (рабочий журнал). В примере 10 проб с разным кол-вом исследований, каждое иссл-ие - новой строкой. Функция промежуточные итоги мне считает пробы по первому столбцу, иссл-ия - по второму. Затем я применяю фильтр, например в столбце 13 выбираю фотометричекий метод. И пробы уже не считаются. Можно прописать номер пробы в каждой строке, но тогда нужно исключить из подсчета повторы. Кнопка "удалить дубликаты" тут не помощник, слишком велик риск потерять данные. Помогите, может это и очень просто решается, но я что-то никак не соображу...
 
Извините, что-то я не подписалась :)
 
фрагмент автономной справки Excel 2003:  
 
Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ исключает все строки не включенные в результат фильтра независимо от используемого значения константы номер_функции.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Может быть вам лучше использовать  
сводную таблицу.  
И где данные, которые надо суммировать?
 
{quote}{login=Kuzmich}{date=24.03.2011 11:30}{thema=Re}{post}Может быть вам лучше использовать  
сводную таблицу.  
И где данные, которые надо суммировать?{/post}{/quote}  
Кроме меня, этим файлом будут пользоваться люди, которые Ctrl+C нажимают с трудом и двумя пальцами. Я их сейчас учу фильтром пользоваться. Сводная таблица мне тут не поможет.    
Мне ничего суммировать не нужно, только подсчитать количество строк. В первом столбце - номер пробы, уникальный. Остальные столбцы (их больше 20) содержат разные данные, которые я буду отбирать с помощью фильтра. Например: методы - фотометрический, раздел - СГМ. К одной пробе (например номер 10) может относиться от 1 до 50 строк - исследований. Количество строк-исследований считается без труда. Я не могу придумать как посчитать количество строк с уникальным значением в первом столбце. (т.е. кол-во проб)
 
{quote}{login=kelebring}{date=25.03.2011 12:38}{thema=Re: Re}{post}{quote}{login=Kuzmich}{date=24.03.2011 11:30}{thema=Re}{post}{/post}{/quote} Я не могу придумать как посчитать количество строк с уникальным значением в первом столбце. (т.е. кол-во проб){/post}{/quote}  
За темой не следил... Уточните про подсчёт уникальных.
 
Так?
 
{quote}{login=Казанский}{date=25.03.2011 01:07}{thema=}{post}Так?{/post}{/quote}  
Нет, не работает :(
 
{quote}{login=Юрий М}{date=25.03.2011 12:50}{thema=Re: Re: Re}{/post}{/quote}  
За темой не следил... Уточните про подсчёт уникальных.{/post}{/quote}  
Пример:  
До применения фильтра - по 5 строчек, начинающихся с 1, 2 и 3 соотв. Это будет 3 пробы и 15 исследований.  
После применения фильтра - две строчки, начинающиеся с 1 и три строчки, начинающиеся с 3. Это будет 2 пробы и 5 иссл-ий.    
Т.е. надо так - считает кол-во строк в первом столбце, видит единицу - дальше строки с единицей  не считает, видит двойку - и т.п.
 
Посмотрите сводную.  
Столбцы "метод" и "раздел"  
в области страницы сводной таблицы,  
там вы можете выбрать, к примеру,  
фотометрический
 
без сводной, но с UDF  
смотрите жёлтую ячейку  
 
пс. делал в Excel 2002, поэтому список переделал в обычный фильтр и в промежуточных итогах функцию 103 поменял на 3.  
если решение устроит, можете просто вставить текст UDF из моего примера и в любой стандартный модуль вашего файла.  
 
ппс. (знатокам). да, я знаю, что UDF написана не лучшим образом. но вроде бы работает. сейчас бум оптимизировать :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
{quote}{login=ikki}{date=25.03.2011 10:35}{thema=}{post}...сейчас бум оптимизировать :){/post}{/quote}  
 
(смущенный смайлик) советы от знатоков принимаются с благодарностью.  
кроме того, м.б. было бы полезно усовершенствовать UDF -    
1. включать/выключать режим обработки скрытых ячеек (ну это вроде понятно, второй аргумент-флажок, и в текст добавить еще проверку .Column.Hidden);  
2. считать любые уникальные значения, а не только числа. вот тут я немного торможу... Variant использовать?  
3. быстрее надо работать :)  
 
спасибо.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
ikki, спасибо огромное!!! Все работает! Единственное, есть небольшой глюк. Когда в таблицу добавляю пустые строки показывает на единицу больше чем надо. Когда строки заполняю все нормально считает. Там наверное неотображаемый символ какой-то прописывается?    
Kuzmich, вам тоже спасибо. Буду на досуге играться, но мне это не подходит. Просто к концу года в таблице будет около 2000 проб (и 30000 строк), слишком много вниз мотать прийдется :)
 
{quote}{login=kelebring}{date=26.03.2011 09:55}{thema=}{post}ikki, спасибо огромное!!! Все работает! Единственное, есть небольшой глюк. Когда в таблицу добавляю пустые строки показывает на единицу больше чем надо. Когда строки заполняю все нормально считает. Там наверное неотображаемый символ какой-то прописывается?    
Kuzmich, вам тоже спасибо. Буду на досуге играться, но мне это не подходит. Просто к концу года в таблице будет около 2000 проб (и 30000 строк), слишком много вниз мотать прийдется :){/post}{/quote}  
 
немного дополненный и исправленный вариант.  
пс. Excel 2003, ваш список остался на месте
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
пс. Excel 2003, ваш список остался на месте  
 
У меня дома 2010 а на работе 2007, в понедельник там посмотрю. :)  
Еще раз спасибо!
 
{quote}{login=The_Prist}{date=27.03.2011 11:38}{thema=}{post}Я бы, наверное, так сделал:  
 
...  
Set oDict = CreateObject("Scripting.Dictionary")  
...  
{/post}{/quote}  
 
словари, да? :) что-то такое я уже здесь видел... Алексей (Alex_ST) обсуждал со слэном, кажется.  
но... "это мы не проходили" (с). пока ещё. :)  
а работать будет намного быстрее? ну без тестирования, навскидку?
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
Страницы: 1
Читают тему
Наверх