Результаты поиска
krosav4ig
Дата: Воскресенье, 01.02.2015, 00:28 |
Сообщение № 1801 | Тема: Заполнение ячеек по двум и более условиям
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
СТ1Код
=ЕСЛИОШИБКА(ПРОСМОТР(ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;);{0;9};ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;));"")
СТ2Код
=ЕСЛИОШИБКА(ПРОСМОТР(ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;);{9;26};ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;));"")
СТ3Код
=ЕСЛИОШИБКА(ПРОСМОТР(ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;);31;ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;));"")
СТ1Код
=ЕСЛИОШИБКА(ПРОСМОТР(ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;);{0;9};ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;));"")
СТ2Код
=ЕСЛИОШИБКА(ПРОСМОТР(ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;);{9;26};ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;));"")
СТ3Код
=ЕСЛИОШИБКА(ПРОСМОТР(ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;);31;ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;));"")
krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Воскресенье, 01.02.2015, 00:45
Ответить
Сообщение СТ1Код
=ЕСЛИОШИБКА(ПРОСМОТР(ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;);{0;9};ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;));"")
СТ2Код
=ЕСЛИОШИБКА(ПРОСМОТР(ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;);{9;26};ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;));"")
СТ3Код
=ЕСЛИОШИБКА(ПРОСМОТР(ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;);31;ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;));"")
Автор - krosav4ig Дата добавления - 01.02.2015 в 00:28
krosav4ig
Дата: Суббота, 31.01.2015, 20:18 |
Сообщение № 1802 | Тема: Конвертация зарплаты из каждые две недели в месячную
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
еще раз перечитал 6 пост, исправил свою формулу Код
=ЕСЛИОШИБКА(СУММ((ЕСЛИОШИБКА(ВПР(ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+14;$A$2:$B$16;2;)*(17-G$3+ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1)))/14;)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+28;$A$2:$B$16;2;);)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+42;$A$2:$B$16;2;)*(КОНМЕСЯЦА(G$3;0)-30-ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1)))/14;))^{0;1})-1;"нет данных")
добавил формулу для бонусов и % (Массивная, вводится по Ctrl-Shift-Enter) Код
=ЕСЛИОШИБКА(СУММ(СУММ((ЕСЛИ(ЕНД(ПОИСКПОЗ($A$2:$A$16;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);))*((ДЕНЬНЕД($A$2:$A$16)<>6)+(ЕНЕЧЁТ(НОМНЕДЕЛИ(--$A$2:$A$16))));$A$2:$A$16;)>=G$3)*(ЕСЛИ(ЕНД(ПОИСКПОЗ($A$2:$A$16;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);))*((ДЕНЬНЕД($A$2:$A$16)<>6)+(ЕНЕЧЁТ(НОМНЕДЕЛИ(--$A$2:$A$16))));$A$2:$A$16;)<=КОНМЕСЯЦА(G$3;0))*(($C$2:$C$16="%")*$B$3:$B$17*$B$2:$B$16%+($C$2:$C$16="bonus")*$B$2:$B$16))^{0;1})-1;"")
UPD. добавил еще 1 файл, в нем добавил имена
еще раз перечитал 6 пост, исправил свою формулу Код
=ЕСЛИОШИБКА(СУММ((ЕСЛИОШИБКА(ВПР(ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+14;$A$2:$B$16;2;)*(17-G$3+ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1)))/14;)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+28;$A$2:$B$16;2;);)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+42;$A$2:$B$16;2;)*(КОНМЕСЯЦА(G$3;0)-30-ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1)))/14;))^{0;1})-1;"нет данных")
добавил формулу для бонусов и % (Массивная, вводится по Ctrl-Shift-Enter) Код
=ЕСЛИОШИБКА(СУММ(СУММ((ЕСЛИ(ЕНД(ПОИСКПОЗ($A$2:$A$16;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);))*((ДЕНЬНЕД($A$2:$A$16)<>6)+(ЕНЕЧЁТ(НОМНЕДЕЛИ(--$A$2:$A$16))));$A$2:$A$16;)>=G$3)*(ЕСЛИ(ЕНД(ПОИСКПОЗ($A$2:$A$16;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);))*((ДЕНЬНЕД($A$2:$A$16)<>6)+(ЕНЕЧЁТ(НОМНЕДЕЛИ(--$A$2:$A$16))));$A$2:$A$16;)<=КОНМЕСЯЦА(G$3;0))*(($C$2:$C$16="%")*$B$3:$B$17*$B$2:$B$16%+($C$2:$C$16="bonus")*$B$2:$B$16))^{0;1})-1;"")
UPD. добавил еще 1 файл, в нем добавил имена krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Суббота, 31.01.2015, 22:12
Ответить
Сообщение еще раз перечитал 6 пост, исправил свою формулу Код
=ЕСЛИОШИБКА(СУММ((ЕСЛИОШИБКА(ВПР(ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+14;$A$2:$B$16;2;)*(17-G$3+ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1)))/14;)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+28;$A$2:$B$16;2;);)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+42;$A$2:$B$16;2;)*(КОНМЕСЯЦА(G$3;0)-30-ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1)))/14;))^{0;1})-1;"нет данных")
добавил формулу для бонусов и % (Массивная, вводится по Ctrl-Shift-Enter) Код
=ЕСЛИОШИБКА(СУММ(СУММ((ЕСЛИ(ЕНД(ПОИСКПОЗ($A$2:$A$16;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);))*((ДЕНЬНЕД($A$2:$A$16)<>6)+(ЕНЕЧЁТ(НОМНЕДЕЛИ(--$A$2:$A$16))));$A$2:$A$16;)>=G$3)*(ЕСЛИ(ЕНД(ПОИСКПОЗ($A$2:$A$16;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);))*((ДЕНЬНЕД($A$2:$A$16)<>6)+(ЕНЕЧЁТ(НОМНЕДЕЛИ(--$A$2:$A$16))));$A$2:$A$16;)<=КОНМЕСЯЦА(G$3;0))*(($C$2:$C$16="%")*$B$3:$B$17*$B$2:$B$16%+($C$2:$C$16="bonus")*$B$2:$B$16))^{0;1})-1;"")
UPD. добавил еще 1 файл, в нем добавил имена Автор - krosav4ig Дата добавления - 31.01.2015 в 20:18
krosav4ig
Дата: Пятница, 30.01.2015, 20:51 |
Сообщение № 1803 | Тема: Конвертация зарплаты из каждые две недели в месячную
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
формулы исправил, добавил динамические ссылки, но у вас по-моему есть ошибки в исходных данных (выделил красным), в одном месте (в 7 строке) неправильный день недели и нечетный номер недели (если вы платите со второй недели через две, то должна быть четная) из-за этого формула Александра (_Boroda_) некорректно считает значение из этой строки, причем в два месяца. В другом месте тоже неправильный день недели и нечетный номер недели, в обоих местах стоит пометка ps прочитайте мой предыдущий пост , вы могли его не заметить
формулы исправил, добавил динамические ссылки, но у вас по-моему есть ошибки в исходных данных (выделил красным), в одном месте (в 7 строке) неправильный день недели и нечетный номер недели (если вы платите со второй недели через две, то должна быть четная) из-за этого формула Александра (_Boroda_) некорректно считает значение из этой строки, причем в два месяца. В другом месте тоже неправильный день недели и нечетный номер недели, в обоих местах стоит пометка ps прочитайте мой предыдущий пост , вы могли его не заметить krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Пятница, 30.01.2015, 20:53
Ответить
Сообщение формулы исправил, добавил динамические ссылки, но у вас по-моему есть ошибки в исходных данных (выделил красным), в одном месте (в 7 строке) неправильный день недели и нечетный номер недели (если вы платите со второй недели через две, то должна быть четная) из-за этого формула Александра (_Boroda_) некорректно считает значение из этой строки, причем в два месяца. В другом месте тоже неправильный день недели и нечетный номер недели, в обоих местах стоит пометка ps прочитайте мой предыдущий пост , вы могли его не заметить Автор - krosav4ig Дата добавления - 30.01.2015 в 20:51
krosav4ig
Дата: Пятница, 30.01.2015, 19:51 |
Сообщение № 1804 | Тема: Конвертация зарплаты из каждые две недели в месячную
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
RMMMM , в 2007, но в файле xls не формула не введется, нужен формат xlsx
RMMMM , в 2007, но в файле xls не формула не введется, нужен формат xlsxkrosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение RMMMM , в 2007, но в файле xls не формула не введется, нужен формат xlsxАвтор - krosav4ig Дата добавления - 30.01.2015 в 19:51
krosav4ig
Дата: Пятница, 30.01.2015, 19:47 |
Сообщение № 1805 | Тема: Конвертация зарплаты из каждые две недели в месячную
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
RMMMM , расписал свою формулу, посмотрите, вдруг правильно считает (у меня считается сумма за дни месяца предшествующие дню оплаты)
RMMMM , расписал свою формулу, посмотрите, вдруг правильно считает (у меня считается сумма за дни месяца предшествующие дню оплаты)krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Пятница, 30.01.2015, 19:50
Ответить
Сообщение RMMMM , расписал свою формулу, посмотрите, вдруг правильно считает (у меня считается сумма за дни месяца предшествующие дню оплаты)Автор - krosav4ig Дата добавления - 30.01.2015 в 19:47
krosav4ig
Дата: Пятница, 30.01.2015, 18:32 |
Сообщение № 1806 | Тема: Конвертация зарплаты из каждые две недели в месячную
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
RMMMM , совсем забыл, эта формула Код
=СУММПРОИЗВ(ЕСЛИ(ЕНД(ПОИСКПОЗ($A$1:$A$15;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(I2;-МЕСЯЦ(I2));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);));;$B$1:$B$15)*((КОНМЕСЯЦА($A1:$A15+2;-1)+1=I$2)*ТЕКСТ(ДЕНЬ($A1:$A15+2);"[>14]14;0")+(КОНМЕСЯЦА($A1:$A15-12;-1)+1=I$2)*($A1:$A15+2>КОНМЕСЯЦА(I$2;0))*(КОНМЕСЯЦА(I$2;0)-$A1:$A15+12))/14)
массивная, для корректного расчета должна вводиться комбинацией Ctrl+Shift+Enter (выделил ее оранжевым), в файле я расписал на примере декабря как эта формула считается без столбца C
RMMMM , совсем забыл, эта формула Код
=СУММПРОИЗВ(ЕСЛИ(ЕНД(ПОИСКПОЗ($A$1:$A$15;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(I2;-МЕСЯЦ(I2));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);));;$B$1:$B$15)*((КОНМЕСЯЦА($A1:$A15+2;-1)+1=I$2)*ТЕКСТ(ДЕНЬ($A1:$A15+2);"[>14]14;0")+(КОНМЕСЯЦА($A1:$A15-12;-1)+1=I$2)*($A1:$A15+2>КОНМЕСЯЦА(I$2;0))*(КОНМЕСЯЦА(I$2;0)-$A1:$A15+12))/14)
массивная, для корректного расчета должна вводиться комбинацией Ctrl+Shift+Enter (выделил ее оранжевым), в файле я расписал на примере декабря как эта формула считается без столбца Ckrosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Пятница, 30.01.2015, 18:48
Ответить
Сообщение RMMMM , совсем забыл, эта формула Код
=СУММПРОИЗВ(ЕСЛИ(ЕНД(ПОИСКПОЗ($A$1:$A$15;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(I2;-МЕСЯЦ(I2));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);));;$B$1:$B$15)*((КОНМЕСЯЦА($A1:$A15+2;-1)+1=I$2)*ТЕКСТ(ДЕНЬ($A1:$A15+2);"[>14]14;0")+(КОНМЕСЯЦА($A1:$A15-12;-1)+1=I$2)*($A1:$A15+2>КОНМЕСЯЦА(I$2;0))*(КОНМЕСЯЦА(I$2;0)-$A1:$A15+12))/14)
массивная, для корректного расчета должна вводиться комбинацией Ctrl+Shift+Enter (выделил ее оранжевым), в файле я расписал на примере декабря как эта формула считается без столбца CАвтор - krosav4ig Дата добавления - 30.01.2015 в 18:32
krosav4ig
Дата: Пятница, 30.01.2015, 11:53 |
Сообщение № 1807 | Тема: Конвертация зарплаты из каждые две недели в месячную
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
укоротил свою формулу Код
=ЕСЛИОШИБКА(СУММ((ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+14;Sheet1!$A$1:$B$15;2;)*(14-B1+ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1)))/14;)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+28;Sheet1!$A$1:$B$15;2;);)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+42;Sheet1!$A$1:$B$15;2;)*(14-(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+42-КОНМЕСЯЦА(B1;0))+1)/14;))^{0;1})-1;"нет данных")
подсмотрел формулу у Александра (_Boroda_) переписал так, для работы не нужен столбец C Код
=СУММПРОИЗВ(ЕСЛИ(ЕНД(ПОИСКПОЗ($A$1:$A$15;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(I2;-МЕСЯЦ(I2));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);));;$B$1:$B$15)*((КОНМЕСЯЦА($A1:$A15+2;-1)+1=I$2)*ТЕКСТ(ДЕНЬ($A1:$A15+2);"[>14]14;0")+(КОНМЕСЯЦА($A1:$A15-12;-1)+1=I$2)*($A1:$A15+2>КОНМЕСЯЦА(I$2;0))*(КОНМЕСЯЦА(I$2;0)-$A1:$A15+12))/14)
укоротил свою формулу Код
=ЕСЛИОШИБКА(СУММ((ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+14;Sheet1!$A$1:$B$15;2;)*(14-B1+ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1)))/14;)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+28;Sheet1!$A$1:$B$15;2;);)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+42;Sheet1!$A$1:$B$15;2;)*(14-(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+42-КОНМЕСЯЦА(B1;0))+1)/14;))^{0;1})-1;"нет данных")
подсмотрел формулу у Александра (_Boroda_) переписал так, для работы не нужен столбец C Код
=СУММПРОИЗВ(ЕСЛИ(ЕНД(ПОИСКПОЗ($A$1:$A$15;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(I2;-МЕСЯЦ(I2));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);));;$B$1:$B$15)*((КОНМЕСЯЦА($A1:$A15+2;-1)+1=I$2)*ТЕКСТ(ДЕНЬ($A1:$A15+2);"[>14]14;0")+(КОНМЕСЯЦА($A1:$A15-12;-1)+1=I$2)*($A1:$A15+2>КОНМЕСЯЦА(I$2;0))*(КОНМЕСЯЦА(I$2;0)-$A1:$A15+12))/14)
krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение укоротил свою формулу Код
=ЕСЛИОШИБКА(СУММ((ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+14;Sheet1!$A$1:$B$15;2;)*(14-B1+ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1)))/14;)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+28;Sheet1!$A$1:$B$15;2;);)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+42;Sheet1!$A$1:$B$15;2;)*(14-(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+42-КОНМЕСЯЦА(B1;0))+1)/14;))^{0;1})-1;"нет данных")
подсмотрел формулу у Александра (_Boroda_) переписал так, для работы не нужен столбец C Код
=СУММПРОИЗВ(ЕСЛИ(ЕНД(ПОИСКПОЗ($A$1:$A$15;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(I2;-МЕСЯЦ(I2));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);));;$B$1:$B$15)*((КОНМЕСЯЦА($A1:$A15+2;-1)+1=I$2)*ТЕКСТ(ДЕНЬ($A1:$A15+2);"[>14]14;0")+(КОНМЕСЯЦА($A1:$A15-12;-1)+1=I$2)*($A1:$A15+2>КОНМЕСЯЦА(I$2;0))*(КОНМЕСЯЦА(I$2;0)-$A1:$A15+12))/14)
Автор - krosav4ig Дата добавления - 30.01.2015 в 11:53
krosav4ig
Дата: Пятница, 30.01.2015, 03:06 |
Сообщение № 1808 | Тема: Конвертация зарплаты из каждые две недели в месячную
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
у мну такая формула получилась, только я трех дней в январе не досчитался... Код
=ЕСЛИОШИБКА(СУММ((ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1)-12*(МЕСЯЦ(B1)=1));0);"d")/7)*7+20+14*(СТРОКА($1:$26)-1))+14;Sheet1!$A$1:$B$15;2;)*(14-B1+ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1)-12*(МЕСЯЦ(B1)=1));0);"d")/7)*7+20+14*(СТРОКА($1:$26)-1)))/14;)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1)-12*(МЕСЯЦ(B1)=1));0);"d")/7)*7+20+14*(СТРОКА($1:$26)-1))+28;Sheet1!$A$1:$B$15;2;);)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1)-12*(МЕСЯЦ(B1)=1));0);"d")/7)*7+20+14*(СТРОКА($1:$26)-1))+42;Sheet1!$A$1:$B$15;2;)*(14-(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1)-12*(МЕСЯЦ(B1)=1));0);"d")/7)*7+20+14*(СТРОКА($1:$26)-1))+42-КОНМЕСЯЦА(B1;0))+1)/14;))^{0;1})-1;"нет данных")
у мну такая формула получилась, только я трех дней в январе не досчитался... Код
=ЕСЛИОШИБКА(СУММ((ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1)-12*(МЕСЯЦ(B1)=1));0);"d")/7)*7+20+14*(СТРОКА($1:$26)-1))+14;Sheet1!$A$1:$B$15;2;)*(14-B1+ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1)-12*(МЕСЯЦ(B1)=1));0);"d")/7)*7+20+14*(СТРОКА($1:$26)-1)))/14;)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1)-12*(МЕСЯЦ(B1)=1));0);"d")/7)*7+20+14*(СТРОКА($1:$26)-1))+28;Sheet1!$A$1:$B$15;2;);)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1)-12*(МЕСЯЦ(B1)=1));0);"d")/7)*7+20+14*(СТРОКА($1:$26)-1))+42;Sheet1!$A$1:$B$15;2;)*(14-(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1)-12*(МЕСЯЦ(B1)=1));0);"d")/7)*7+20+14*(СТРОКА($1:$26)-1))+42-КОНМЕСЯЦА(B1;0))+1)/14;))^{0;1})-1;"нет данных")
krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение у мну такая формула получилась, только я трех дней в январе не досчитался... Код
=ЕСЛИОШИБКА(СУММ((ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1)-12*(МЕСЯЦ(B1)=1));0);"d")/7)*7+20+14*(СТРОКА($1:$26)-1))+14;Sheet1!$A$1:$B$15;2;)*(14-B1+ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1)-12*(МЕСЯЦ(B1)=1));0);"d")/7)*7+20+14*(СТРОКА($1:$26)-1)))/14;)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1)-12*(МЕСЯЦ(B1)=1));0);"d")/7)*7+20+14*(СТРОКА($1:$26)-1))+28;Sheet1!$A$1:$B$15;2;);)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1)-12*(МЕСЯЦ(B1)=1));0);"d")/7)*7+20+14*(СТРОКА($1:$26)-1))+42;Sheet1!$A$1:$B$15;2;)*(14-(ПРОСМОТР(B1;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(B1;-МЕСЯЦ(B1)-12*(МЕСЯЦ(B1)=1));0);"d")/7)*7+20+14*(СТРОКА($1:$26)-1))+42-КОНМЕСЯЦА(B1;0))+1)/14;))^{0;1})-1;"нет данных")
Автор - krosav4ig Дата добавления - 30.01.2015 в 03:06
krosav4ig
Дата: Пятница, 30.01.2015, 00:02 |
Сообщение № 1809 | Тема: Максимальное значение каждой строки в диапазоне.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
можно в модуль листа такой код написать [vba]Код
Private Sub Worksheet_Calculate() Dim rrow As Range With Application: .ScreenUpdating = 0: .EnableEvents = 0:: .Calculation = xlCalculationManual For Each rrow In Intersect(ActiveSheet.UsedRange, [C:E]).Rows rrow.Offset(, 3).Resize(, 1).Formula = "=MAX(" & rrow.Address & ")" Next .Calculation = xlCalculationAutomatic: .ScreenUpdating = 1: .EnableEvents = 1: End With End Sub
[/vba]
можно в модуль листа такой код написать [vba]Код
Private Sub Worksheet_Calculate() Dim rrow As Range With Application: .ScreenUpdating = 0: .EnableEvents = 0:: .Calculation = xlCalculationManual For Each rrow In Intersect(ActiveSheet.UsedRange, [C:E]).Rows rrow.Offset(, 3).Resize(, 1).Formula = "=MAX(" & rrow.Address & ")" Next .Calculation = xlCalculationAutomatic: .ScreenUpdating = 1: .EnableEvents = 1: End With End Sub
[/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Пятница, 30.01.2015, 00:07
Ответить
Сообщение можно в модуль листа такой код написать [vba]Код
Private Sub Worksheet_Calculate() Dim rrow As Range With Application: .ScreenUpdating = 0: .EnableEvents = 0:: .Calculation = xlCalculationManual For Each rrow In Intersect(ActiveSheet.UsedRange, [C:E]).Rows rrow.Offset(, 3).Resize(, 1).Formula = "=MAX(" & rrow.Address & ")" Next .Calculation = xlCalculationAutomatic: .ScreenUpdating = 1: .EnableEvents = 1: End With End Sub
[/vba] Автор - krosav4ig Дата добавления - 30.01.2015 в 00:02
krosav4ig
Дата: Четверг, 29.01.2015, 12:49 |
Сообщение № 1810 | Тема: "Длинная" формула, как правильно округлить?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
видимо сильно китайский, у мну тоже китайский, поставил ограничение 2 знака результат - 641.15. Вы своему помощнику судьи покажите такой фокус: на компе скопируйте в буфер обмена строку ((36076,59-20000)*0,03+800)/2 , запустите калькулятор и нажмите Ctrl+V>Enter ЗЫ для разнообразия формула Код
=ЕСЛИ(AO5;ОКРУГЛ(МИН(ВЫБОР(МИН(СЧЁТ(1/(AO5>10^{4;5;6}*{1:2}));5)+1;200;AO5*0,04/2;((AO5-20000)*0,03+800)/2;((AO5-100000)*0,02+3200)/2;((AO5-200000)*0,01+5200)/2;((AO5-1000000)*0,005+13200)/2);60000);2);"")
видимо сильно китайский, у мну тоже китайский, поставил ограничение 2 знака результат - 641.15. Вы своему помощнику судьи покажите такой фокус: на компе скопируйте в буфер обмена строку ((36076,59-20000)*0,03+800)/2 , запустите калькулятор и нажмите Ctrl+V>Enter ЗЫ для разнообразия формула Код
=ЕСЛИ(AO5;ОКРУГЛ(МИН(ВЫБОР(МИН(СЧЁТ(1/(AO5>10^{4;5;6}*{1:2}));5)+1;200;AO5*0,04/2;((AO5-20000)*0,03+800)/2;((AO5-100000)*0,02+3200)/2;((AO5-200000)*0,01+5200)/2;((AO5-1000000)*0,005+13200)/2);60000);2);"")
krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Четверг, 29.01.2015, 12:50
Ответить
Сообщение видимо сильно китайский, у мну тоже китайский, поставил ограничение 2 знака результат - 641.15. Вы своему помощнику судьи покажите такой фокус: на компе скопируйте в буфер обмена строку ((36076,59-20000)*0,03+800)/2 , запустите калькулятор и нажмите Ctrl+V>Enter ЗЫ для разнообразия формула Код
=ЕСЛИ(AO5;ОКРУГЛ(МИН(ВЫБОР(МИН(СЧЁТ(1/(AO5>10^{4;5;6}*{1:2}));5)+1;200;AO5*0,04/2;((AO5-20000)*0,03+800)/2;((AO5-100000)*0,02+3200)/2;((AO5-200000)*0,01+5200)/2;((AO5-1000000)*0,005+13200)/2);60000);2);"")
Автор - krosav4ig Дата добавления - 29.01.2015 в 12:49
krosav4ig
Дата: Среда, 28.01.2015, 17:03 |
Сообщение № 1811 | Тема: Перевод дней в годы и месяцы
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение julytt , а можно так? Автор - krosav4ig Дата добавления - 28.01.2015 в 17:03
krosav4ig
Дата: Среда, 28.01.2015, 14:47 |
Сообщение № 1812 | Тема: Как в Excel (VBA) выделить 10 строк?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
вместо [vba]Код
Application.ScreenUpdating = False
[/vba] (в начале кода) [vba]
Код
With Application: .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = 0
[/vba]
вместо [vba]Код
Application.ScreenUpdating = False
[/vba] (в конце кода. кстати, почему False? вы уже отключили обновление экрана в начале кода, тут нужно его включить (True). Вас спасает только то, что при завершении работы макроса обновление экрана автоматически включается) [vba]
Код
.ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1: End With
[/vba]
вместо [vba]Код
Application.ScreenUpdating = False
[/vba] (в начале кода) [vba]
Код
With Application: .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = 0
[/vba]
вместо [vba]Код
Application.ScreenUpdating = False
[/vba] (в конце кода. кстати, почему False? вы уже отключили обновление экрана в начале кода, тут нужно его включить (True). Вас спасает только то, что при завершении работы макроса обновление экрана автоматически включается) [vba]
Код
.ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1: End With
[/vba]
krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Среда, 28.01.2015, 15:21
Ответить
Сообщение вместо [vba]Код
Application.ScreenUpdating = False
[/vba] (в начале кода) [vba]
Код
With Application: .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = 0
[/vba]
вместо [vba]Код
Application.ScreenUpdating = False
[/vba] (в конце кода. кстати, почему False? вы уже отключили обновление экрана в начале кода, тут нужно его включить (True). Вас спасает только то, что при завершении работы макроса обновление экрана автоматически включается) [vba]
Код
.ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1: End With
[/vba]
Автор - krosav4ig Дата добавления - 28.01.2015 в 14:47
krosav4ig
Дата: Среда, 28.01.2015, 12:52 |
Сообщение № 1813 | Тема: Условное форматирование по выражению
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
[vba]Код
With tmpRange.Offset(, -6).FormatConditions 'дополнительно подсвечиваем даты из 1-ого Столбца .Delete With .Add(2, , "=ЕОШИБКА(ВПР(RC;Диапазон_3;2;))") .Interior.Color = RGB(204, 204, 153) End With End With
[/vba]
[vba]Код
With tmpRange.Offset(, -6).FormatConditions 'дополнительно подсвечиваем даты из 1-ого Столбца .Delete With .Add(2, , "=ЕОШИБКА(ВПР(RC;Диапазон_3;2;))") .Interior.Color = RGB(204, 204, 153) End With End With
[/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Среда, 28.01.2015, 12:59
Ответить
Сообщение [vba]Код
With tmpRange.Offset(, -6).FormatConditions 'дополнительно подсвечиваем даты из 1-ого Столбца .Delete With .Add(2, , "=ЕОШИБКА(ВПР(RC;Диапазон_3;2;))") .Interior.Color = RGB(204, 204, 153) End With End With
[/vba] Автор - krosav4ig Дата добавления - 28.01.2015 в 12:52
krosav4ig
Дата: Вторник, 27.01.2015, 20:29 |
Сообщение № 1814 | Тема: Поиск соответствующих значений и суммирование.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
может я чего-то не так понял, но вот что у мну получилось [vba]Код
Option Explicit Function FilenamesCollection(ByVal FolderPath As String, Optional ByVal Mask As String = "", _ Optional ByVal SearchDeep As Long = 999) As Collection Dim FSO As Object Set FilenamesCollection = New Collection Set FSO = CreateObject("Scripting.FileSystemObject") GetAllFileNamesUsingFSO FolderPath, Mask, FSO, FilenamesCollection, SearchDeep Set FSO = Nothing End Function Function GetAllFileNamesUsingFSO(ByVal FolderPath As String, ByVal Mask As String, ByRef FSO, _ ByRef FileNamesColl As Collection, ByVal SearchDeep As Long) Dim curfold As Object, fil As Object, sfol As Object On Error Resume Next: Set curfold = FSO.GetFolder(FolderPath) If Not curfold Is Nothing Then For Each fil In curfold.Files If fil.Name Like "*" & Mask Then FileNamesColl.Add fil Next SearchDeep = SearchDeep - 1 If SearchDeep Then For Each sfol In curfold.SubFolders GetAllFileNamesUsingFSO sfol.path, Mask, FSO, FileNamesColl, SearchDeep Next End If Set fil = Nothing: Set curfold = Nothing End If End Function Sub sdf() Dim con As New ADODB.Connection Dim RS As New ADODB.Recordset Dim coll As Collection Dim ObjFile As Object Dim FilePath$, path$, ConnectionString$ ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.path & ";Extended Properties=dBASE IV" 'ConnectionString = "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" & ThisWorkbook.path con.Open ConnectionString$ con.Execute "create table atable (name Text(50), cnt long)" For Each ObjFile In FilenamesCollection(ThisWorkbook.path, ".dbf", 2) FilePath = ObjFile.path: path$ = Replace(FilePath, ObjFile.Name, "") con.Execute "INSERT INTO atable SELECT Field1 as name, sum(Field2) as cnt From " & ObjFile.Name & " IN '" & path & "' [Dbase IV;DATABASE=" & FilePath & "] group by Field1" Next RS.Open "select name, sum(cnt) as sumcnt from atable group by name", con, 3, 3 [A1].CopyFromRecordset RS RS.Close con.Execute "drop table atable" con.Close Set con = Nothing: Set RS = Nothing End Sub
[/vba]
может я чего-то не так понял, но вот что у мну получилось [vba]Код
Option Explicit Function FilenamesCollection(ByVal FolderPath As String, Optional ByVal Mask As String = "", _ Optional ByVal SearchDeep As Long = 999) As Collection Dim FSO As Object Set FilenamesCollection = New Collection Set FSO = CreateObject("Scripting.FileSystemObject") GetAllFileNamesUsingFSO FolderPath, Mask, FSO, FilenamesCollection, SearchDeep Set FSO = Nothing End Function Function GetAllFileNamesUsingFSO(ByVal FolderPath As String, ByVal Mask As String, ByRef FSO, _ ByRef FileNamesColl As Collection, ByVal SearchDeep As Long) Dim curfold As Object, fil As Object, sfol As Object On Error Resume Next: Set curfold = FSO.GetFolder(FolderPath) If Not curfold Is Nothing Then For Each fil In curfold.Files If fil.Name Like "*" & Mask Then FileNamesColl.Add fil Next SearchDeep = SearchDeep - 1 If SearchDeep Then For Each sfol In curfold.SubFolders GetAllFileNamesUsingFSO sfol.path, Mask, FSO, FileNamesColl, SearchDeep Next End If Set fil = Nothing: Set curfold = Nothing End If End Function Sub sdf() Dim con As New ADODB.Connection Dim RS As New ADODB.Recordset Dim coll As Collection Dim ObjFile As Object Dim FilePath$, path$, ConnectionString$ ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.path & ";Extended Properties=dBASE IV" 'ConnectionString = "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" & ThisWorkbook.path con.Open ConnectionString$ con.Execute "create table atable (name Text(50), cnt long)" For Each ObjFile In FilenamesCollection(ThisWorkbook.path, ".dbf", 2) FilePath = ObjFile.path: path$ = Replace(FilePath, ObjFile.Name, "") con.Execute "INSERT INTO atable SELECT Field1 as name, sum(Field2) as cnt From " & ObjFile.Name & " IN '" & path & "' [Dbase IV;DATABASE=" & FilePath & "] group by Field1" Next RS.Open "select name, sum(cnt) as sumcnt from atable group by name", con, 3, 3 [A1].CopyFromRecordset RS RS.Close con.Execute "drop table atable" con.Close Set con = Nothing: Set RS = Nothing End Sub
[/vba] krosav4ig
К сообщению приложен файл:
qwe.zip
(21.6 Kb)
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Вторник, 27.01.2015, 20:36
Ответить
Сообщение может я чего-то не так понял, но вот что у мну получилось [vba]Код
Option Explicit Function FilenamesCollection(ByVal FolderPath As String, Optional ByVal Mask As String = "", _ Optional ByVal SearchDeep As Long = 999) As Collection Dim FSO As Object Set FilenamesCollection = New Collection Set FSO = CreateObject("Scripting.FileSystemObject") GetAllFileNamesUsingFSO FolderPath, Mask, FSO, FilenamesCollection, SearchDeep Set FSO = Nothing End Function Function GetAllFileNamesUsingFSO(ByVal FolderPath As String, ByVal Mask As String, ByRef FSO, _ ByRef FileNamesColl As Collection, ByVal SearchDeep As Long) Dim curfold As Object, fil As Object, sfol As Object On Error Resume Next: Set curfold = FSO.GetFolder(FolderPath) If Not curfold Is Nothing Then For Each fil In curfold.Files If fil.Name Like "*" & Mask Then FileNamesColl.Add fil Next SearchDeep = SearchDeep - 1 If SearchDeep Then For Each sfol In curfold.SubFolders GetAllFileNamesUsingFSO sfol.path, Mask, FSO, FileNamesColl, SearchDeep Next End If Set fil = Nothing: Set curfold = Nothing End If End Function Sub sdf() Dim con As New ADODB.Connection Dim RS As New ADODB.Recordset Dim coll As Collection Dim ObjFile As Object Dim FilePath$, path$, ConnectionString$ ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.path & ";Extended Properties=dBASE IV" 'ConnectionString = "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" & ThisWorkbook.path con.Open ConnectionString$ con.Execute "create table atable (name Text(50), cnt long)" For Each ObjFile In FilenamesCollection(ThisWorkbook.path, ".dbf", 2) FilePath = ObjFile.path: path$ = Replace(FilePath, ObjFile.Name, "") con.Execute "INSERT INTO atable SELECT Field1 as name, sum(Field2) as cnt From " & ObjFile.Name & " IN '" & path & "' [Dbase IV;DATABASE=" & FilePath & "] group by Field1" Next RS.Open "select name, sum(cnt) as sumcnt from atable group by name", con, 3, 3 [A1].CopyFromRecordset RS RS.Close con.Execute "drop table atable" con.Close Set con = Nothing: Set RS = Nothing End Sub
[/vba] Автор - krosav4ig Дата добавления - 27.01.2015 в 20:29
krosav4ig
Дата: Понедельник, 26.01.2015, 19:06 |
Сообщение № 1815 | Тема: Поиск соответствующих значений и суммирование.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
имхо лучше копать в сторону adodb, суммировать запросом например [vba]Код
SELECT Таблица1.Поле1, SUM(Таблица1.Поле2) FROM Таблица1 group by Таблица1.Поле1
[/vba], и уже результат запроса выгружать на лист
имхо лучше копать в сторону adodb, суммировать запросом например [vba]Код
SELECT Таблица1.Поле1, SUM(Таблица1.Поле2) FROM Таблица1 group by Таблица1.Поле1
[/vba], и уже результат запроса выгружать на лист krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Понедельник, 26.01.2015, 19:06
Ответить
Сообщение имхо лучше копать в сторону adodb, суммировать запросом например [vba]Код
SELECT Таблица1.Поле1, SUM(Таблица1.Поле2) FROM Таблица1 group by Таблица1.Поле1
[/vba], и уже результат запроса выгружать на лист Автор - krosav4ig Дата добавления - 26.01.2015 в 19:06
krosav4ig
Дата: Понедельник, 26.01.2015, 17:40 |
Сообщение № 1816 | Тема: Как в Excel (VBA) выделить 10 строк?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
чего-то не заметно, да и ни тут , ни тут , ссылок на эту тему замечено не было, ни тут не были опубликованы эти ссылки.
чего-то не заметно, да и ни тут , ни тут , ссылок на эту тему замечено не было, ни тут не были опубликованы эти ссылки. krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Понедельник, 26.01.2015, 17:43
Ответить
Сообщение чего-то не заметно, да и ни тут , ни тут , ссылок на эту тему замечено не было, ни тут не были опубликованы эти ссылки. Автор - krosav4ig Дата добавления - 26.01.2015 в 17:40
krosav4ig
Дата: Понедельник, 26.01.2015, 17:12 |
Сообщение № 1817 | Тема: Как в Excel (VBA) выделить 10 строк?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
RAN , написал [vba]Код
ActiveWorkbook.SaveAs Filename:= environ("homepath")&"\1 2", FileFormat:=xlWorkbookNormal
[/vba], получил файл "1 2.xls", может быть у вас другая сборка была
RAN , написал [vba]Код
ActiveWorkbook.SaveAs Filename:= environ("homepath")&"\1 2", FileFormat:=xlWorkbookNormal
[/vba], получил файл "1 2.xls", может быть у вас другая сборка былаkrosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение RAN , написал [vba]Код
ActiveWorkbook.SaveAs Filename:= environ("homepath")&"\1 2", FileFormat:=xlWorkbookNormal
[/vba], получил файл "1 2.xls", может быть у вас другая сборка былаАвтор - krosav4ig Дата добавления - 26.01.2015 в 17:12
krosav4ig
Дата: Понедельник, 26.01.2015, 16:54 |
Сообщение № 1818 | Тема: Как в Excel (VBA) выделить 10 строк?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
ниче незнаю, пишу в immediate[vba]Код
ActiveWorkbook.SaveAs Filename:= environ("homepath")&"\1 2", FileFormat:=6
[/vba], получаю файл "1 2.csv" в корневой папке пользователя [p.s.]Excel - 2007 12.0.4518.1014 ОС - Microsoft Windows Professional SP3 Vol 2600.xpsp_sp3_qfe.130704-0421[/p.s.]
ниче незнаю, пишу в immediate[vba]Код
ActiveWorkbook.SaveAs Filename:= environ("homepath")&"\1 2", FileFormat:=6
[/vba], получаю файл "1 2.csv" в корневой папке пользователя [p.s.]Excel - 2007 12.0.4518.1014 ОС - Microsoft Windows Professional SP3 Vol 2600.xpsp_sp3_qfe.130704-0421[/p.s.] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение ниче незнаю, пишу в immediate[vba]Код
ActiveWorkbook.SaveAs Filename:= environ("homepath")&"\1 2", FileFormat:=6
[/vba], получаю файл "1 2.csv" в корневой папке пользователя [p.s.]Excel - 2007 12.0.4518.1014 ОС - Microsoft Windows Professional SP3 Vol 2600.xpsp_sp3_qfe.130704-0421[/p.s.] Автор - krosav4ig Дата добавления - 26.01.2015 в 16:54
krosav4ig
Дата: Понедельник, 26.01.2015, 12:34 |
Сообщение № 1819 | Тема: Как в Excel (VBA) выделить 10 строк?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
смотрите мой пост , там документы именуются правильно или у себя замените [vba]Код
"C:\Users\Desktop\list" & i & ".csv"
[/vba] на [vba]Код
"C:\Users\Desktop\list" & i \ 10 & ".csv"
[/vba] почему у вас если Тут же черным по белому написано, что CSV это xlCSV или 6, а вы сохраняете книгу excel 97-2003 с расширением csv. При правильном указании формата расширение указывать не обязательно, т.е. [vba]Код
ActiveWorkbook.SaveAs Filename:= "C:\Users\Desktop\list" & i \ 10, FileFormat:=6
[/vba]
смотрите мой пост , там документы именуются правильно или у себя замените [vba]Код
"C:\Users\Desktop\list" & i & ".csv"
[/vba] на [vba]Код
"C:\Users\Desktop\list" & i \ 10 & ".csv"
[/vba] почему у вас если Тут же черным по белому написано, что CSV это xlCSV или 6, а вы сохраняете книгу excel 97-2003 с расширением csv. При правильном указании формата расширение указывать не обязательно, т.е. [vba]Код
ActiveWorkbook.SaveAs Filename:= "C:\Users\Desktop\list" & i \ 10, FileFormat:=6
[/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Понедельник, 26.01.2015, 14:08
Ответить
Сообщение смотрите мой пост , там документы именуются правильно или у себя замените [vba]Код
"C:\Users\Desktop\list" & i & ".csv"
[/vba] на [vba]Код
"C:\Users\Desktop\list" & i \ 10 & ".csv"
[/vba] почему у вас если Тут же черным по белому написано, что CSV это xlCSV или 6, а вы сохраняете книгу excel 97-2003 с расширением csv. При правильном указании формата расширение указывать не обязательно, т.е. [vba]Код
ActiveWorkbook.SaveAs Filename:= "C:\Users\Desktop\list" & i \ 10, FileFormat:=6
[/vba] Автор - krosav4ig Дата добавления - 26.01.2015 в 12:34
krosav4ig
Дата: Понедельник, 26.01.2015, 02:07 |
Сообщение № 1820 | Тема: Ввод данных в таблицу на разных листах
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
[offtop]Надеюсь "ротом" это "потом", а не "ртом"?
и не рогом [/offtop]
[offtop]Надеюсь "ротом" это "потом", а не "ртом"?
и не рогом [/offtop] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение [offtop]Надеюсь "ротом" это "потом", а не "ртом"?
и не рогом [/offtop] Автор - krosav4ig Дата добавления - 26.01.2015 в 02:07