Страницы: 1
RSS
Среднегодовое количество сделок, ошибка счета?
 
Добрый день. Столкнулся со следующей ситуацией. Использовал формулу счет(если...(если... обычно она меня не подводила, но в один прекрасный день что-то пошло не так. Прилагаю файл с одним из последних вариантов.
Пробовал: много чего пробовал. и переписывать формулу кусками, и копировать в новую книгу, на новый лист, удалять строки дабы не затесалось там ничего. исопользовал счетз и счет. даже пришел сегодня утром и пробовал смотреть на свежую голову. что не так? где мой мозг дал слабину. или excel???
П.С. Excel 2013. Ну и в принципе в других местах считал правильно.
Использую VBA для решения рабочих вопросов. Чуть больше чем любитель, так что прошу прощение за глупые вопросы.
 
Описали в общем, а что конкретно не нравится - догадайтесь сами...
=СЧЁТЕСЛИМН(ИП_время!$D$26:$D$3094;">="&2010;ИП_время!$D$26:$D$3094;"<"&2015)
 
Извините. Не нравится то, что как видно из приложенного файла. Ни одно значение в ячейке не соответствует правильному. т.е. Excel не получает входе расчета правильный результат. в этом в принципе и был вопрос. т.к. столкнулся с этим впервые. ранее с использованием этой формулы проблем не возникало.
Не смутило его и оставленное специально мной " ИП_время!#ССЫЛКА! "
Изменено: Olegersohn - 08.04.2015 10:16:47
Использую VBA для решения рабочих вопросов. Чуть больше чем любитель, так что прошу прощение за глупые вопросы.
 
а что не правильно у вас массив 3069 строк который обработается условиями установленными вами при этом эти 3069 стро станут истиной или ложью а для функции счётз любое из данных будет значением которое оно посчитает
Дак что не так?
Лень двигатель прогресса, доказано!!!
 
Считает все правильно, вот проверка.
Неизлечимых болезней нет, есть неизлечимые люди.
 
Там условия, не считать 2015 год, меньше 2015 и обратите внимание на строку, где диапазон забит на 75 000, значение 74 975. Неужели меня так тупит?
Использую VBA для решения рабочих вопросов. Чуть больше чем любитель, так что прошу прощение за глупые вопросы.
 
Проверьте, сколько значений покажут формулы:
=СЧЁТЗ(1/0;1/0;1)
=СЧЁТ(1/0;1/0;1)

Понятно или нужно объяснение?

Формула из сообщения №2 не понравилась?
 
Так формулу замените на ={СЧЁТ(ЕСЛИ(ИП_время!$D$26:$D$75000>=2010;ЕСЛИ(ИП_время!$D$26:$D$75000<2015;ИП_время!D26)75000))) } и будет без 2015
Неизлечимых болезней нет, есть неизлечимые люди.
 
TheBestOfTheBest, не поверите. не работает=(
vikttur, Ну не стоит считать всех такими уж... формула из второго сообщения работает. спасибо. вопрос остался что с счет(если...если...

TheBestOfTheBest, Вот вы все равно не поверите. но сейчас, написанная одна и та же формула в разных ячейках. дает разные результаты. в одном случае правильно, в другом нет... Причем если сравнивать их как текст "ИСТИНА".
Что делать не знаю. буду пробовать дальше.
конкретный вопрос для работы решен благодаря формуле из второго сообщения, вопрос с разными результатами нет...
Изменено: Olegersohn - 08.04.2015 10:55:08
Использую VBA для решения рабочих вопросов. Чуть больше чем любитель, так что прошу прощение за глупые вопросы.
 
Я не считаю "всех такими уж...", но Вы даже не намекнули, что видели формулу.

Цитата
вопрос остался что с счет(если...если...
А я Вам показал в сообщении №7
 
У меня на вашем файле работает, значить не в формуле дело. Мне сисадмин в таких случаях говорит "ошибка на стороне пользователя, перезагрузите винду".
Неизлечимых болезней нет, есть неизлечимые люди.
 
TheBestOfTheBest, у автора вопрос: почему формула считает, если в ней #ССЫЛКА? Почему не говорит, что ошибка?

Функция СЧЕТЗ понимает ошибки как текст , потому и считает их значениями.
Функция СЧЕТ игнорирует ошибки.
Что и показано в сообщении №7.
 
Можно без доп столбцов:
=СЧЁТЕСЛИМН(ИП_время!$D$26:$D$3094;">="&2010;ИП_время!$D$26:$D$3094;"<"&2015)
Для Excel-2003:
=СЧЁТЕСЛИ(ИП_время!$A$26:$A$3094;">=01.01.2010")-СЧЁТЕСЛИ(ИП_время!$A$26:$A$3094;">=01.01.2015")
или (если границы заданы константами):
=СУММ(СЧЁТЕСЛИ(ИП_время!$A$26:$A$3094;">="& {"01.01.2010";"01.01.2015"})*{1;-1})
Все формулы без "массивного" ввода.
 
Цитата
Olegersohn ... формула из второго сообщения работает. спасибо
только я совсем не уверена, что она вам показала Среднегодовое количество сделок  :( - скорее просто пересчитала количество сделок за период... если я верно оформила запрос (ради интереса и практики) - если диапазону таблицы задать имя - "AAA"
Скрытый текст

- долго не смогла применить функцию AVG (Average) sql... чтобы получить значение формулы поста№2 и подумать, что это среднее... справляется только функция COUNT, чтобы выйти на ваш результат  
Изменено: JeyCi - 08.04.2015 19:33:26
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Avg() будет работать только при группировке и только для числового поля. Добавьте после WHERE ... GROUP BY  Год, а в SELECT ... , Avg(<Numeric>) as Среднее
Неизлечимых болезней нет, есть неизлечимые люди.
 
Цитата
TheBestOfTheBest написал: Avg() будет работать только при группировке и только для числового поля.
вот это уже другое дело 8)  спасибо
Код
sSql = "SELECT [Год], Avg(Месяц) as Среднее " _
        & " FROM [AAA]" _
        & " WHERE [Год]>=2010 AND [Год]<2015" _
        & " GROUP BY Год"
- хоть тему раскрыли(?) в дополнение ответов, которые помогли ТС... ничего, что код выше длинный - зато многогранный... только пока ещё не понятно зачем "as Среднее" - оно никуда не выгружается... в принципе, без него тоже работает... наверно, это на случай если заголовки Fields выгружать (ака названия столбцов)

P.S. хотя как-то на среднемесячное это похоже...
Изменено: JeyCi - 08.04.2015 20:36:54
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
В этом случае вы усредняете колонку Месяц, т.е. 1-12 месяц, 6,5 в год. Оператор As задает имя полю, если надо к нему обратиться тут же в запросе. В нашем случае query имя присваивает автоматом, но других sql это может вызвать ошибку, в общем привычка такая.
Неизлечимых болезней нет, есть неизлечимые люди.
 
там в графе Год - просто пометка года... а уже в столбце Месяц - штуки, наверно...
всё-таки Средне.......?, мне кажется, скорее такое
(руками не пересчитываю, а чисто по формуле)?
Код
' среднемесячное за год
sSql = "SELECT [Год], SUM (Месяц)/12 as [среднемес в году]  " _
        & " FROM [AAA]" _
        & " WHERE [Год]>=2010 AND [Год]<2015" _
        & " GROUP BY Год"
получились такие показатели:
2010 - 236
2011 - 219.8333
2012 - 290.0833
2013 - 386.25
2014  - 645.6667
хотя... ... власть немного поменялась - думаю, на 12 делить не надо - тогда показатели за год просто сумма за все месяцы ( от этого и останется, видимо,  найти среднегодовое )
2010 - 2832
2011 - 2638
2012 - 3481
2013 - 4635
2014 - 7748
Изменено: JeyCi - 09.04.2015 10:56:59
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Простите, а сводной таблицей не проще?
 
Простите, пытаюсь разобраться с sql  :)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
JeyCi, ох, я просто не понял. Я пока на такое не решаюсь :). Удачи! Если разберетесь, буду знать к кому с вопросами в этой области обращаться, коли возникнет необходимость
 
утро началось вот так
Код
'среднее по годам
sSql = "SELECT Avg(годСум) as годСреднее " _
        & " FROM (" _
            & " SELECT [Год], sum(Месяц) as годСум " _
            & " FROM [AAA]" _
            & " WHERE [Год]>=2010 AND [Год]<2015" _
            & " GROUP BY Год)"
если в колонке Месяц, действительно, находятся штуки - то такой запрос, полагаю,  даст  Среднее по всем годам  (не проверяла, но подумала вслух)... значение 4266.8... - может много? топик-стартеру виднее...

p.s. МВТ, кстати с вопросами по запросам лучше в Access - там, говорят, проще построить запрос руками в Конструкторе (и даже не обязательно помнить все инструкции) - и потом просто посмотреть, как он выглядит текстом...
многие так и делают (и получившийся запрос копируют/ вставляют в xl) - в vba или даже в ячейку (как пример, Несколько SQL запросов в одном макросе - макрос на  обработку запросов из ячейки в той ветке - R Dmitry 11 Янв 2013 23:35:29 ) ... но у меня с Access- пока не очень (я с ним не знакома)- приходится думать самой вместо Access'a  
Изменено: JeyCi - 09.04.2015 10:28:08
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
TheBestOfTheBest написал: В этом случае вы усредняете колонку Месяц
AVG инструкция sql в #16:
а усреднив колонку месяц (в которой по сути были прописаны каждодневное кол-во сделок и совсем даже не месяц) - полагаю, мы получили Среднедневное кол-во сделок в году (т. к. группировали [агрегировали] по Году)... вот как-то так...
p.s. жизни мне это не давало, пока не разобралась - интересно всё-таки 8) (хоть и стат.отчёты не пользую пока)
p.p.s при работе с БД лучше ПРАВИЛЬНО НАЗЫВАТЬ СТОЛБЦЫ, чтобы не вводить в заблуждение о содержимом этого столбца и способах его обработки (иначе мозг надолго задумывается)
Изменено: JeyCi - 09.04.2015 12:30:25
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: 1
Наверх