Результаты поиска
krosav4ig
Дата: Пятница, 16.08.2019, 23:22 |
Сообщение № 2121 | Тема: элемент управления Флажок на три ячейки
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Здравствуйте в модуль [vba]Код
Function xx(ParamArray r() As Variant) As Range Dim rng, b As Boolean If Application.Caller.Address = ActiveCell.Address Then Set xx = r(0).Cells(1, 1) b = xx For Each rng In r rng.Value = Not b Next End If End Function
[/vba] в диспетчер имен именованный диапазон xКод
=xx((Лист1!$B$2;Лист1!$D$2;Лист1!$B$5;Лист1!$D$5))
или, например, Код
=xx(Лист1!$F$2:$F$3;Лист1!$H$2:$H$3;Лист1!$F$5:$F$6)
выделяем флажок, в строке формул пишем =x
Здравствуйте в модуль [vba]Код
Function xx(ParamArray r() As Variant) As Range Dim rng, b As Boolean If Application.Caller.Address = ActiveCell.Address Then Set xx = r(0).Cells(1, 1) b = xx For Each rng In r rng.Value = Not b Next End If End Function
[/vba] в диспетчер имен именованный диапазон xКод
=xx((Лист1!$B$2;Лист1!$D$2;Лист1!$B$5;Лист1!$D$5))
или, например, Код
=xx(Лист1!$F$2:$F$3;Лист1!$H$2:$H$3;Лист1!$F$5:$F$6)
выделяем флажок, в строке формул пишем =x krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение Здравствуйте в модуль [vba]Код
Function xx(ParamArray r() As Variant) As Range Dim rng, b As Boolean If Application.Caller.Address = ActiveCell.Address Then Set xx = r(0).Cells(1, 1) b = xx For Each rng In r rng.Value = Not b Next End If End Function
[/vba] в диспетчер имен именованный диапазон xКод
=xx((Лист1!$B$2;Лист1!$D$2;Лист1!$B$5;Лист1!$D$5))
или, например, Код
=xx(Лист1!$F$2:$F$3;Лист1!$H$2:$H$3;Лист1!$F$5:$F$6)
выделяем флажок, в строке формул пишем =x Автор - krosav4ig Дата добавления - 16.08.2019 в 23:22
krosav4ig
Дата: Суббота, 17.08.2019, 17:45 |
Сообщение № 2122 | Тема: формат ячейки с верхним индексом
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
для Excel <=2010 [vba]Код
Function UniChr(Code&) UniChr = ChrW(Code) End Function
[/vba]Код
=ЛЕВБ(A1;ПОИСК(" ";A1)-1)&UniChr(8314)&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(A1;ПОИСК("–";A1)+2;99)-ЛЕВБ(A1;ПОИСК(" ";A1));0;UniChr(8304));1;UniChr(185));2;UniChr(178));3;UniChr(179));4;UniChr(8308));5;UniChr(8309));6;UniChr(8310));7;UniChr(8311));8;UniChr(8312));9;UniChr(8313));",";UniChr(B2))
для Excel >=2013Код
=ЛЕВБ(A1;ПОИСК(" ";A1)-1)&ЮНИСИМВ(8314)&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(A1;ПОИСК("–";A1)+2;99)-ЛЕВБ(A1;ПОИСК(" ";A1));0;ЮНИСИМВ(8304));1;ЮНИСИМВ(185));2;ЮНИСИМВ(178));3;ЮНИСИМВ(179));4;ЮНИСИМВ(8308));5;ЮНИСИМВ(8309));6;ЮНИСИМВ(8310));7;ЮНИСИМВ(8311));8;ЮНИСИМВ(8312));9;ЮНИСИМВ(8313));",";ЮНИСИМВ(B2))
для Excel <=2010 [vba]Код
Function UniChr(Code&) UniChr = ChrW(Code) End Function
[/vba]Код
=ЛЕВБ(A1;ПОИСК(" ";A1)-1)&UniChr(8314)&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(A1;ПОИСК("–";A1)+2;99)-ЛЕВБ(A1;ПОИСК(" ";A1));0;UniChr(8304));1;UniChr(185));2;UniChr(178));3;UniChr(179));4;UniChr(8308));5;UniChr(8309));6;UniChr(8310));7;UniChr(8311));8;UniChr(8312));9;UniChr(8313));",";UniChr(B2))
для Excel >=2013Код
=ЛЕВБ(A1;ПОИСК(" ";A1)-1)&ЮНИСИМВ(8314)&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(A1;ПОИСК("–";A1)+2;99)-ЛЕВБ(A1;ПОИСК(" ";A1));0;ЮНИСИМВ(8304));1;ЮНИСИМВ(185));2;ЮНИСИМВ(178));3;ЮНИСИМВ(179));4;ЮНИСИМВ(8308));5;ЮНИСИМВ(8309));6;ЮНИСИМВ(8310));7;ЮНИСИМВ(8311));8;ЮНИСИМВ(8312));9;ЮНИСИМВ(8313));",";ЮНИСИМВ(B2))
krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение для Excel <=2010 [vba]Код
Function UniChr(Code&) UniChr = ChrW(Code) End Function
[/vba]Код
=ЛЕВБ(A1;ПОИСК(" ";A1)-1)&UniChr(8314)&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(A1;ПОИСК("–";A1)+2;99)-ЛЕВБ(A1;ПОИСК(" ";A1));0;UniChr(8304));1;UniChr(185));2;UniChr(178));3;UniChr(179));4;UniChr(8308));5;UniChr(8309));6;UniChr(8310));7;UniChr(8311));8;UniChr(8312));9;UniChr(8313));",";UniChr(B2))
для Excel >=2013Код
=ЛЕВБ(A1;ПОИСК(" ";A1)-1)&ЮНИСИМВ(8314)&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(A1;ПОИСК("–";A1)+2;99)-ЛЕВБ(A1;ПОИСК(" ";A1));0;ЮНИСИМВ(8304));1;ЮНИСИМВ(185));2;ЮНИСИМВ(178));3;ЮНИСИМВ(179));4;ЮНИСИМВ(8308));5;ЮНИСИМВ(8309));6;ЮНИСИМВ(8310));7;ЮНИСИМВ(8311));8;ЮНИСИМВ(8312));9;ЮНИСИМВ(8313));",";ЮНИСИМВ(B2))
Автор - krosav4ig Дата добавления - 17.08.2019 в 17:45
krosav4ig
Дата: Вторник, 20.08.2019, 21:55 |
Сообщение № 2123 | Тема: Построение квадрата Ганна 9
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
у меня так и не нашлось времени сократить свою формулу в 325 символовКод
=ЕСЛИ(ABS($A$1-СТОЛБЕЦ())>ABS($A$1-СТРОКА());(($A$1-СТОЛБЕЦ())^2-(-1)^(СТОЛБЕЦ()>$A$1)*($A$1-СТОЛБЕЦ()))*4+($A$1-СТОЛБЕЦ())*(-5)^(СТОЛБЕЦ()>$A$1)+1+($A$1-СТРОКА())*(-1)^(СТОЛБЕЦ()>$A$1);(($A$1-СТРОКА())^2-(-1)^(СТРОКА()>$A$1)*($A$1-СТРОКА()))*4+3*(-7/3)^(СТРОКА()>$A$1)*($A$1-СТРОКА())+1+($A$1-СТОЛБЕЦ())*(-1)^(СТРОКА()<$A$1))
у меня так и не нашлось времени сократить свою формулу в 325 символовКод
=ЕСЛИ(ABS($A$1-СТОЛБЕЦ())>ABS($A$1-СТРОКА());(($A$1-СТОЛБЕЦ())^2-(-1)^(СТОЛБЕЦ()>$A$1)*($A$1-СТОЛБЕЦ()))*4+($A$1-СТОЛБЕЦ())*(-5)^(СТОЛБЕЦ()>$A$1)+1+($A$1-СТРОКА())*(-1)^(СТОЛБЕЦ()>$A$1);(($A$1-СТРОКА())^2-(-1)^(СТРОКА()>$A$1)*($A$1-СТРОКА()))*4+3*(-7/3)^(СТРОКА()>$A$1)*($A$1-СТРОКА())+1+($A$1-СТОЛБЕЦ())*(-1)^(СТРОКА()<$A$1))
krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение у меня так и не нашлось времени сократить свою формулу в 325 символовКод
=ЕСЛИ(ABS($A$1-СТОЛБЕЦ())>ABS($A$1-СТРОКА());(($A$1-СТОЛБЕЦ())^2-(-1)^(СТОЛБЕЦ()>$A$1)*($A$1-СТОЛБЕЦ()))*4+($A$1-СТОЛБЕЦ())*(-5)^(СТОЛБЕЦ()>$A$1)+1+($A$1-СТРОКА())*(-1)^(СТОЛБЕЦ()>$A$1);(($A$1-СТРОКА())^2-(-1)^(СТРОКА()>$A$1)*($A$1-СТРОКА()))*4+3*(-7/3)^(СТРОКА()>$A$1)*($A$1-СТРОКА())+1+($A$1-СТОЛБЕЦ())*(-1)^(СТРОКА()<$A$1))
Автор - krosav4ig Дата добавления - 20.08.2019 в 21:55
krosav4ig
Дата: Среда, 21.08.2019, 14:07 |
Сообщение № 2124 | Тема: Снять выделение в Комбоксе
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Добрый денькак убрать выделение при запуске формы.
в UserForm_Initialize удалить строки, которые выделение устанавливают (содержащие [vba]Код
comboComments.ListIndex =
[/vba])
Добрый денькак убрать выделение при запуске формы.
в UserForm_Initialize удалить строки, которые выделение устанавливают (содержащие [vba]Код
comboComments.ListIndex =
[/vba]) krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение Добрый денькак убрать выделение при запуске формы.
в UserForm_Initialize удалить строки, которые выделение устанавливают (содержащие [vba]Код
comboComments.ListIndex =
[/vba]) Автор - krosav4ig Дата добавления - 21.08.2019 в 14:07
krosav4ig
Дата: Среда, 21.08.2019, 19:49 |
Сообщение № 2125 | Тема: Снять выделение в Комбоксе
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Тогда ошибка: Compile error: Case without Select Case
ну дык зачем было удалять строку [vba]Код
Select Case comboComments.ListIndex
[/vba]?появилась пустая строка вверху ее тоже надо убрать.
Кто вам мешает это сделать?Главное чтобы нужная задачка выполнялась.
читаем заголовок темы и первый пост Снять выделение в Комбоксе
как убрать выделение при запуске формы
код из #7 на 100% этой задаче соответствует снятие выделения комбобокса [vba]Код
comboComments.ListIndex = -1
[/vba]напишете эту строку сами там, где вам нужно выделение снять
Тогда ошибка: Compile error: Case without Select Case
ну дык зачем было удалять строку [vba]Код
Select Case comboComments.ListIndex
[/vba]?появилась пустая строка вверху ее тоже надо убрать.
Кто вам мешает это сделать?Главное чтобы нужная задачка выполнялась.
читаем заголовок темы и первый пост Снять выделение в Комбоксе
как убрать выделение при запуске формы
код из #7 на 100% этой задаче соответствует снятие выделения комбобокса [vba]Код
comboComments.ListIndex = -1
[/vba]напишете эту строку сами там, где вам нужно выделение снятьkrosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение Тогда ошибка: Compile error: Case without Select Case
ну дык зачем было удалять строку [vba]Код
Select Case comboComments.ListIndex
[/vba]?появилась пустая строка вверху ее тоже надо убрать.
Кто вам мешает это сделать?Главное чтобы нужная задачка выполнялась.
читаем заголовок темы и первый пост Снять выделение в Комбоксе
как убрать выделение при запуске формы
код из #7 на 100% этой задаче соответствует снятие выделения комбобокса [vba]Код
comboComments.ListIndex = -1
[/vba]напишете эту строку сами там, где вам нужно выделение снятьАвтор - krosav4ig Дата добавления - 21.08.2019 в 19:49
krosav4ig
Дата: Среда, 21.08.2019, 21:23 |
Сообщение № 2126 | Тема: Снять выделение в Комбоксе
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
ну и до кучи, если форма немодальная, то достаточно просто .SetFocus [vba]Код
Private Sub UserForm_Initialize() ' Fill the ComboBoxes With comboComments .List = Array("Только индикатор", "Скрыть", "Показать") End With ' Get the current settings With Parent cbFullScreen = .DisplayFullScreen comboComments.ListIndex = .DisplayCommentIndicator + 1 End With End Sub Private Sub comboComments_Change() With comboComments .SetFocus Application.DisplayCommentIndicator = .ListIndex - 1 End With End Sub
[/vba]
ну и до кучи, если форма немодальная, то достаточно просто .SetFocus [vba]Код
Private Sub UserForm_Initialize() ' Fill the ComboBoxes With comboComments .List = Array("Только индикатор", "Скрыть", "Показать") End With ' Get the current settings With Parent cbFullScreen = .DisplayFullScreen comboComments.ListIndex = .DisplayCommentIndicator + 1 End With End Sub Private Sub comboComments_Change() With comboComments .SetFocus Application.DisplayCommentIndicator = .ListIndex - 1 End With End Sub
[/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение ну и до кучи, если форма немодальная, то достаточно просто .SetFocus [vba]Код
Private Sub UserForm_Initialize() ' Fill the ComboBoxes With comboComments .List = Array("Только индикатор", "Скрыть", "Показать") End With ' Get the current settings With Parent cbFullScreen = .DisplayFullScreen comboComments.ListIndex = .DisplayCommentIndicator + 1 End With End Sub Private Sub comboComments_Change() With comboComments .SetFocus Application.DisplayCommentIndicator = .ListIndex - 1 End With End Sub
[/vba] Автор - krosav4ig Дата добавления - 21.08.2019 в 21:23
krosav4ig
Дата: Среда, 21.08.2019, 21:25 |
Сообщение № 2127 | Тема: Снять выделение в Комбоксе
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Run-time error '424': Object required
на форму нужно поместить невидимый текстбокс с именем TextBox1
Run-time error '424': Object required
на форму нужно поместить невидимый текстбокс с именем TextBox1krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Среда, 21.08.2019, 21:26
Ответить
Сообщение Run-time error '424': Object required
на форму нужно поместить невидимый текстбокс с именем TextBox1Автор - krosav4ig Дата добавления - 21.08.2019 в 21:25
krosav4ig
Дата: Среда, 21.08.2019, 21:33 |
Сообщение № 2128 | Тема: Построение квадрата Ганна 9
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Светлый , мне все треугольные числа мерещатся , до сих пор не отпускает
Светлый , мне все треугольные числа мерещатся , до сих пор не отпускаетkrosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Среда, 21.08.2019, 21:33
Ответить
Сообщение Светлый , мне все треугольные числа мерещатся , до сих пор не отпускаетАвтор - krosav4ig Дата добавления - 21.08.2019 в 21:33
krosav4ig
Дата: Четверг, 22.08.2019, 15:05 |
Сообщение № 2129 | Тема: Построение квадрата Ганна 9
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
еще одна вариация, в этот раз начал с диагоналей, хоть до 300 (267 без=) уложился Код
=ВЫБОР(ОСТАТ(ЗНАК((ABS(СТОЛБЕЦ()-$A$1)-ABS(СТРОКА()-$A$1)))+2;2)+1;4*(СТОЛБЕЦ()-$A$1)^2+ВЫБОР((СТРОКА(B2)<=$A$1)+(СТОЛБЕЦ()<=$A$1)*2+1;2;0;-4;2)*(СТОЛБЕЦ()-$A$1)+1;ЕСЛИ(ABS(СТОЛБЕЦ()-$A$1)>ABS(СТРОКА()-$A$1);ЕСЛИ(СТОЛБЕЦ()<$A$1;B1;B3)-1;ЕСЛИ(СТРОКА(B2)<$A$1;A2;C2)+1))
еще одна вариация, в этот раз начал с диагоналей, хоть до 300 (267 без=) уложился Код
=ВЫБОР(ОСТАТ(ЗНАК((ABS(СТОЛБЕЦ()-$A$1)-ABS(СТРОКА()-$A$1)))+2;2)+1;4*(СТОЛБЕЦ()-$A$1)^2+ВЫБОР((СТРОКА(B2)<=$A$1)+(СТОЛБЕЦ()<=$A$1)*2+1;2;0;-4;2)*(СТОЛБЕЦ()-$A$1)+1;ЕСЛИ(ABS(СТОЛБЕЦ()-$A$1)>ABS(СТРОКА()-$A$1);ЕСЛИ(СТОЛБЕЦ()<$A$1;B1;B3)-1;ЕСЛИ(СТРОКА(B2)<$A$1;A2;C2)+1))
krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение еще одна вариация, в этот раз начал с диагоналей, хоть до 300 (267 без=) уложился Код
=ВЫБОР(ОСТАТ(ЗНАК((ABS(СТОЛБЕЦ()-$A$1)-ABS(СТРОКА()-$A$1)))+2;2)+1;4*(СТОЛБЕЦ()-$A$1)^2+ВЫБОР((СТРОКА(B2)<=$A$1)+(СТОЛБЕЦ()<=$A$1)*2+1;2;0;-4;2)*(СТОЛБЕЦ()-$A$1)+1;ЕСЛИ(ABS(СТОЛБЕЦ()-$A$1)>ABS(СТРОКА()-$A$1);ЕСЛИ(СТОЛБЕЦ()<$A$1;B1;B3)-1;ЕСЛИ(СТРОКА(B2)<$A$1;A2;C2)+1))
Автор - krosav4ig Дата добавления - 22.08.2019 в 15:05
krosav4ig
Дата: Четверг, 22.08.2019, 17:46 |
Сообщение № 2130 | Тема: Вставить формат Лиры в ячейку
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Здравствуте как-то так [vba]Код
Selection.NumberFormat = "[$" &chrw(8356) & "-410]#,##0.00_ ;[Red]-[$" &chrw(8356) & "-410]#,##0.00"
[/vba]
Здравствуте как-то так [vba]Код
Selection.NumberFormat = "[$" &chrw(8356) & "-410]#,##0.00_ ;[Red]-[$" &chrw(8356) & "-410]#,##0.00"
[/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение Здравствуте как-то так [vba]Код
Selection.NumberFormat = "[$" &chrw(8356) & "-410]#,##0.00_ ;[Red]-[$" &chrw(8356) & "-410]#,##0.00"
[/vba] Автор - krosav4ig Дата добавления - 22.08.2019 в 17:46
krosav4ig
Дата: Пятница, 23.08.2019, 22:22 |
Сообщение № 2131 | Тема: Выборка значений из списка по признаку
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Здравствуйте UDF [vba]Код
Function Похожие$() Dim r As Range, r1 As Range, s$ Set r = Application.Caller Select Case True Case IsEmpty(r(1, 0)) And Not IsEmpty(r(2, 0)) Set r1 = r.Parent.Range(r(1, -1), IIf(IsEmpty(r(3, 0)), r(2, 0), r(2, 0).End(xlDown)(1, 0))) Похожие = Join(Filter(Application.Transpose(r1), r(1, -1), 0), ";") Case Not IsEmpty(r(1, 0)) s = IIf(IsEmpty(r(2, 0)), ";", "") Похожие = r(0, -1) & ";" & Replace(r(0, 1) & s, s & r(1, -1) & ";", "") End Select End Function
[/vba]
Здравствуйте UDF [vba]Код
Function Похожие$() Dim r As Range, r1 As Range, s$ Set r = Application.Caller Select Case True Case IsEmpty(r(1, 0)) And Not IsEmpty(r(2, 0)) Set r1 = r.Parent.Range(r(1, -1), IIf(IsEmpty(r(3, 0)), r(2, 0), r(2, 0).End(xlDown)(1, 0))) Похожие = Join(Filter(Application.Transpose(r1), r(1, -1), 0), ";") Case Not IsEmpty(r(1, 0)) s = IIf(IsEmpty(r(2, 0)), ";", "") Похожие = r(0, -1) & ";" & Replace(r(0, 1) & s, s & r(1, -1) & ";", "") End Select End Function
[/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение Здравствуйте UDF [vba]Код
Function Похожие$() Dim r As Range, r1 As Range, s$ Set r = Application.Caller Select Case True Case IsEmpty(r(1, 0)) And Not IsEmpty(r(2, 0)) Set r1 = r.Parent.Range(r(1, -1), IIf(IsEmpty(r(3, 0)), r(2, 0), r(2, 0).End(xlDown)(1, 0))) Похожие = Join(Filter(Application.Transpose(r1), r(1, -1), 0), ";") Case Not IsEmpty(r(1, 0)) s = IIf(IsEmpty(r(2, 0)), ";", "") Похожие = r(0, -1) & ";" & Replace(r(0, 1) & s, s & r(1, -1) & ";", "") End Select End Function
[/vba] Автор - krosav4ig Дата добавления - 23.08.2019 в 22:22
krosav4ig
Дата: Суббота, 24.08.2019, 03:08 |
Сообщение № 2132 | Тема: Расчет суммы часов по отпуску
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
ЗдравствуйтеКод
=СУММПРОИЗВ((C5:AF5="от")*(ДЕНЬНЕД(C$3:AF$3;2)<6)*8)
ЗдравствуйтеКод
=СУММПРОИЗВ((C5:AF5="от")*(ДЕНЬНЕД(C$3:AF$3;2)<6)*8)
krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение ЗдравствуйтеКод
=СУММПРОИЗВ((C5:AF5="от")*(ДЕНЬНЕД(C$3:AF$3;2)<6)*8)
Автор - krosav4ig Дата добавления - 24.08.2019 в 03:08
krosav4ig
Дата: Понедельник, 26.08.2019, 13:35 |
Сообщение № 2133 | Тема: Формулы Excel логические и поиск (расчет премии, цен, товар)
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
krosav4ig
Дата: Вторник, 27.08.2019, 17:21 |
Сообщение № 2134 | Тема: Прописать условия переноса значения для группы таблиц (см.оп
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Добрый деньКод
=ПРОСМОТР(;-1/ПОИСК("Карта № ";$A$1:A9);$A$1:$A$2)
Добрый деньКод
=ПРОСМОТР(;-1/ПОИСК("Карта № ";$A$1:A9);$A$1:$A$2)
krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение Добрый деньКод
=ПРОСМОТР(;-1/ПОИСК("Карта № ";$A$1:A9);$A$1:$A$2)
Автор - krosav4ig Дата добавления - 27.08.2019 в 17:21
krosav4ig
Дата: Вторник, 27.08.2019, 17:31 |
Сообщение № 2135 | Тема: Поставить пробелы между символами
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Добрый день UDF [vba]Код
Function AddSpaces(s$, i%) AddSpaces = Join(Split(StrConv(s, 64), Chr(0)), Space(i)) End Function
[/vba]
Добрый день UDF [vba]Код
Function AddSpaces(s$, i%) AddSpaces = Join(Split(StrConv(s, 64), Chr(0)), Space(i)) End Function
[/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение Добрый день UDF [vba]Код
Function AddSpaces(s$, i%) AddSpaces = Join(Split(StrConv(s, 64), Chr(0)), Space(i)) End Function
[/vba] Автор - krosav4ig Дата добавления - 27.08.2019 в 17:31
krosav4ig
Дата: Пятница, 30.08.2019, 13:57 |
Сообщение № 2136 | Тема: Выделение шести цифр
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
можно как-то так Код
=ЕСЛИОШИБКА(ПРОСМОТР("яяя";ТЕКСТ(--ПСТР(A2;ПОИСКПОЗ({3;4;5}+1;ЧАСТОТА(СТРОКА($1:$999);ЕОШ(-ПСТР(A2&-(9^6);СТРОКА($1:$999);1))*СТРОКА($1:$999));)-{3;4;5};{3;4;5});ПОВТОР(0;{3;4;5})));"")
можно как-то так Код
=ЕСЛИОШИБКА(ПРОСМОТР("яяя";ТЕКСТ(--ПСТР(A2;ПОИСКПОЗ({3;4;5}+1;ЧАСТОТА(СТРОКА($1:$999);ЕОШ(-ПСТР(A2&-(9^6);СТРОКА($1:$999);1))*СТРОКА($1:$999));)-{3;4;5};{3;4;5});ПОВТОР(0;{3;4;5})));"")
krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение можно как-то так Код
=ЕСЛИОШИБКА(ПРОСМОТР("яяя";ТЕКСТ(--ПСТР(A2;ПОИСКПОЗ({3;4;5}+1;ЧАСТОТА(СТРОКА($1:$999);ЕОШ(-ПСТР(A2&-(9^6);СТРОКА($1:$999);1))*СТРОКА($1:$999));)-{3;4;5};{3;4;5});ПОВТОР(0;{3;4;5})));"")
Автор - krosav4ig Дата добавления - 30.08.2019 в 13:57
krosav4ig
Дата: Пятница, 30.08.2019, 21:11 |
Сообщение № 2137 | Тема: Выделение шести цифр
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Код
=ЕСЛИОШИБКА(ПРОСМОТР("яяя";ТЕКСТ(--ПСТР(A2;ДЛСТР(A2)-ПОИСКПОЗ({3;4;5}+1;ЧАСТОТА(СТРОКА($1:$999);ЕОШ(-ПСТР(A2&-(9^6);ДЛСТР(A2)-СТРОКА($1:$999)+1;1))*СТРОКА($1:$999));)+2;{3;4;5});ПОВТОР(0;{3;4;5})));"")
Код
=ЕСЛИОШИБКА(ПРОСМОТР("яяя";ТЕКСТ(--ПСТР(A2;ДЛСТР(A2)-ПОИСКПОЗ({3;4;5}+1;ЧАСТОТА(СТРОКА($1:$999);ЕОШ(-ПСТР(A2&-(9^6);ДЛСТР(A2)-СТРОКА($1:$999)+1;1))*СТРОКА($1:$999));)+2;{3;4;5});ПОВТОР(0;{3;4;5})));"")
krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение Код
=ЕСЛИОШИБКА(ПРОСМОТР("яяя";ТЕКСТ(--ПСТР(A2;ДЛСТР(A2)-ПОИСКПОЗ({3;4;5}+1;ЧАСТОТА(СТРОКА($1:$999);ЕОШ(-ПСТР(A2&-(9^6);ДЛСТР(A2)-СТРОКА($1:$999)+1;1))*СТРОКА($1:$999));)+2;{3;4;5});ПОВТОР(0;{3;4;5})));"")
Автор - krosav4ig Дата добавления - 30.08.2019 в 21:11
krosav4ig
Дата: Вторник, 03.09.2019, 02:00 |
Сообщение № 2138 | Тема: PQ преобразовать объединенный запрос с файла на папку файлов
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Здравствуйте [vba]Код
let fx=(FileContents) => let fn =(t as table, SheetName as text, optional NeededColumns as nullable list, optional Filter as nullable text, optional ColumnsToRename as nullable list)=>let Sheet = t{[Item=SheetName,Kind="Sheet"]}[Data], NeededCol = if NeededColumns<>null then Table.SelectColumns(Sheet,NeededColumns) else Sheet, Filtered = if Filter<>null then Table.SelectRows(NeededCol, each Expression.Evaluate(Filter,[_=_])) else NeededCol, Promoted = Table.PromoteHeaders(Filtered, [PromoteAllScalars=true]), RenameCol = if ColumnsToRename<>null then Table.RenameColumns(Promoted,ColumnsToRename) else 1, FullName = NeededCol{[Column3="ФИО работника:"]}[Column4], AddName = Table.AddColumn(RenameCol, "ФИО", each FullName) in Table.ReorderColumns(AddName,{"ФИО"}&Table.ColumnNames(RenameCol)), Мониторинг_КП_ежекв = fn( FileContents, "Мониторинг КП_ежекв", {"Column2", "Column3", "Column4", "Column5", "Column6"}, "([Column2] <> null) and ([Column4] <> null) and ([Column3] <> ""-"")", {{"№#(lf)п.п.", "№ п.п."}} ), Оценка_проектов_по_году = fn( FileContents, "Оценка проектов (по году)", {"Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column11", "Column12", "Column18"}, "([Column3] <> null) and ([Column3] <> ""-"") and ([Column5] <> null) and ([Column3] <> 2)", {{"Column5", "Качество балл (факт)"}, {"Column7", "График балл (факт)"}} ), Columns = {"ФИО", "№ п.п.", "Наименование проекта"}, Join = Table.NestedJoin(Оценка_проектов_по_году,Columns,Мониторинг_КП_ежекв,Columns,"GetData",JoinKind.LeftOuter) in Table.ExpandTableColumn(Join, "GetData", List.Difference(Table.ColumnNames(Мониторинг_КП_ежекв),Table.ColumnNames(Оценка_проектов_по_году))), Folder=Table.SelectRows(Folder.Files("D:\x"),each (not [Attributes][NotContentIndexed]) and ([Attributes][Kind]="Excel File"))[[#"Folder Path"],[Name],[Content]], Transform = Table.TransformColumns(Folder, {{"Content",each fx(Table.Buffer(Excel.Workbook(_, null, true)))}}) in Transform
[/vba]
Здравствуйте [vba]Код
let fx=(FileContents) => let fn =(t as table, SheetName as text, optional NeededColumns as nullable list, optional Filter as nullable text, optional ColumnsToRename as nullable list)=>let Sheet = t{[Item=SheetName,Kind="Sheet"]}[Data], NeededCol = if NeededColumns<>null then Table.SelectColumns(Sheet,NeededColumns) else Sheet, Filtered = if Filter<>null then Table.SelectRows(NeededCol, each Expression.Evaluate(Filter,[_=_])) else NeededCol, Promoted = Table.PromoteHeaders(Filtered, [PromoteAllScalars=true]), RenameCol = if ColumnsToRename<>null then Table.RenameColumns(Promoted,ColumnsToRename) else 1, FullName = NeededCol{[Column3="ФИО работника:"]}[Column4], AddName = Table.AddColumn(RenameCol, "ФИО", each FullName) in Table.ReorderColumns(AddName,{"ФИО"}&Table.ColumnNames(RenameCol)), Мониторинг_КП_ежекв = fn( FileContents, "Мониторинг КП_ежекв", {"Column2", "Column3", "Column4", "Column5", "Column6"}, "([Column2] <> null) and ([Column4] <> null) and ([Column3] <> ""-"")", {{"№#(lf)п.п.", "№ п.п."}} ), Оценка_проектов_по_году = fn( FileContents, "Оценка проектов (по году)", {"Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column11", "Column12", "Column18"}, "([Column3] <> null) and ([Column3] <> ""-"") and ([Column5] <> null) and ([Column3] <> 2)", {{"Column5", "Качество балл (факт)"}, {"Column7", "График балл (факт)"}} ), Columns = {"ФИО", "№ п.п.", "Наименование проекта"}, Join = Table.NestedJoin(Оценка_проектов_по_году,Columns,Мониторинг_КП_ежекв,Columns,"GetData",JoinKind.LeftOuter) in Table.ExpandTableColumn(Join, "GetData", List.Difference(Table.ColumnNames(Мониторинг_КП_ежекв),Table.ColumnNames(Оценка_проектов_по_году))), Folder=Table.SelectRows(Folder.Files("D:\x"),each (not [Attributes][NotContentIndexed]) and ([Attributes][Kind]="Excel File"))[[#"Folder Path"],[Name],[Content]], Transform = Table.TransformColumns(Folder, {{"Content",each fx(Table.Buffer(Excel.Workbook(_, null, true)))}}) in Transform
[/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение Здравствуйте [vba]Код
let fx=(FileContents) => let fn =(t as table, SheetName as text, optional NeededColumns as nullable list, optional Filter as nullable text, optional ColumnsToRename as nullable list)=>let Sheet = t{[Item=SheetName,Kind="Sheet"]}[Data], NeededCol = if NeededColumns<>null then Table.SelectColumns(Sheet,NeededColumns) else Sheet, Filtered = if Filter<>null then Table.SelectRows(NeededCol, each Expression.Evaluate(Filter,[_=_])) else NeededCol, Promoted = Table.PromoteHeaders(Filtered, [PromoteAllScalars=true]), RenameCol = if ColumnsToRename<>null then Table.RenameColumns(Promoted,ColumnsToRename) else 1, FullName = NeededCol{[Column3="ФИО работника:"]}[Column4], AddName = Table.AddColumn(RenameCol, "ФИО", each FullName) in Table.ReorderColumns(AddName,{"ФИО"}&Table.ColumnNames(RenameCol)), Мониторинг_КП_ежекв = fn( FileContents, "Мониторинг КП_ежекв", {"Column2", "Column3", "Column4", "Column5", "Column6"}, "([Column2] <> null) and ([Column4] <> null) and ([Column3] <> ""-"")", {{"№#(lf)п.п.", "№ п.п."}} ), Оценка_проектов_по_году = fn( FileContents, "Оценка проектов (по году)", {"Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column11", "Column12", "Column18"}, "([Column3] <> null) and ([Column3] <> ""-"") and ([Column5] <> null) and ([Column3] <> 2)", {{"Column5", "Качество балл (факт)"}, {"Column7", "График балл (факт)"}} ), Columns = {"ФИО", "№ п.п.", "Наименование проекта"}, Join = Table.NestedJoin(Оценка_проектов_по_году,Columns,Мониторинг_КП_ежекв,Columns,"GetData",JoinKind.LeftOuter) in Table.ExpandTableColumn(Join, "GetData", List.Difference(Table.ColumnNames(Мониторинг_КП_ежекв),Table.ColumnNames(Оценка_проектов_по_году))), Folder=Table.SelectRows(Folder.Files("D:\x"),each (not [Attributes][NotContentIndexed]) and ([Attributes][Kind]="Excel File"))[[#"Folder Path"],[Name],[Content]], Transform = Table.TransformColumns(Folder, {{"Content",each fx(Table.Buffer(Excel.Workbook(_, null, true)))}}) in Transform
[/vba] Автор - krosav4ig Дата добавления - 03.09.2019 в 02:00
krosav4ig
Дата: Среда, 04.09.2019, 17:21 |
Сообщение № 2139 | Тема: PQ преобразовать объединенный запрос с файла на папку файлов
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
[vba]Код
let fx=(FileContents) => let fn =(t as table, SheetName as text, optional NeededColumns as nullable list, optional Filter as nullable text, optional ColumnsToRename as nullable list)=>let Sheet = t{[Item=SheetName,Kind="Sheet"]}[Data], NeededCol = if NeededColumns<>null then Table.SelectColumns(Sheet,NeededColumns) else Sheet, Filtered = if Filter<>null then Table.SelectRows(NeededCol, each Expression.Evaluate(Filter,[_=_])) else NeededCol, Promoted = Table.PromoteHeaders(Filtered, [PromoteAllScalars=true]), RenameCol = if ColumnsToRename<>null then List.Accumulate(ColumnsToRename,Promoted,(a,b)=>try Table.RenameColumns(a,b) otherwise a) else Promoted, FullName = NeededCol{[Column3="ФИО работника:"]}[Column4], AddName = Table.AddColumn(RenameCol, "ФИО", each FullName) in Table.ReorderColumns(AddName,{"ФИО"}&Table.ColumnNames(RenameCol)), Мониторинг_КП_ежекв = fn( FileContents, "Мониторинг КП_ежекв", {"Column2", "Column3", "Column4", "Column5", "Column6"}, "([Column2] <> null) and ([Column4] <> null) and ([Column3] <> ""-"")" ), Оценка_проектов_по_году = fn( FileContents, "Оценка проектов (по году)", {"Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column11", "Column12", "Column18"}, "([Column3] <> null) and ([Column3] <> ""-"") and ([Column5] <> null) and ([Column3] <> 2)", {{"Column5", "Качество балл (факт)"}, {"Column7", "График балл (факт)"}} ), Columns = List.Transform({Оценка_проектов_по_году,Мониторинг_КП_ежекв},each List.Range(Table.ColumnNames(_),0,3)), Join = Table.NestedJoin(Оценка_проектов_по_году,Columns{0},Мониторинг_КП_ежекв,Columns{1},"GetData",JoinKind.LeftOuter) in Table.ExpandTableColumn(Join, "GetData", List.Difference(Table.ColumnNames(Мониторинг_КП_ежекв),Table.ColumnNames(Оценка_проектов_по_году)&List.Combine(Columns))), Folder = Table.SelectRows(Folder.Files("D:\x"),each (not [Attributes][NotContentIndexed]) and ([Attributes][Kind]="Excel File"))[[#"Folder Path"],[Name],[Content]], Transform = Table.TransformColumns(Folder, {{"Content",each fx(Table.Buffer(Excel.Workbook(_, null, true)))}}) in Transform
[/vba]
[vba]Код
let fx=(FileContents) => let fn =(t as table, SheetName as text, optional NeededColumns as nullable list, optional Filter as nullable text, optional ColumnsToRename as nullable list)=>let Sheet = t{[Item=SheetName,Kind="Sheet"]}[Data], NeededCol = if NeededColumns<>null then Table.SelectColumns(Sheet,NeededColumns) else Sheet, Filtered = if Filter<>null then Table.SelectRows(NeededCol, each Expression.Evaluate(Filter,[_=_])) else NeededCol, Promoted = Table.PromoteHeaders(Filtered, [PromoteAllScalars=true]), RenameCol = if ColumnsToRename<>null then List.Accumulate(ColumnsToRename,Promoted,(a,b)=>try Table.RenameColumns(a,b) otherwise a) else Promoted, FullName = NeededCol{[Column3="ФИО работника:"]}[Column4], AddName = Table.AddColumn(RenameCol, "ФИО", each FullName) in Table.ReorderColumns(AddName,{"ФИО"}&Table.ColumnNames(RenameCol)), Мониторинг_КП_ежекв = fn( FileContents, "Мониторинг КП_ежекв", {"Column2", "Column3", "Column4", "Column5", "Column6"}, "([Column2] <> null) and ([Column4] <> null) and ([Column3] <> ""-"")" ), Оценка_проектов_по_году = fn( FileContents, "Оценка проектов (по году)", {"Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column11", "Column12", "Column18"}, "([Column3] <> null) and ([Column3] <> ""-"") and ([Column5] <> null) and ([Column3] <> 2)", {{"Column5", "Качество балл (факт)"}, {"Column7", "График балл (факт)"}} ), Columns = List.Transform({Оценка_проектов_по_году,Мониторинг_КП_ежекв},each List.Range(Table.ColumnNames(_),0,3)), Join = Table.NestedJoin(Оценка_проектов_по_году,Columns{0},Мониторинг_КП_ежекв,Columns{1},"GetData",JoinKind.LeftOuter) in Table.ExpandTableColumn(Join, "GetData", List.Difference(Table.ColumnNames(Мониторинг_КП_ежекв),Table.ColumnNames(Оценка_проектов_по_году)&List.Combine(Columns))), Folder = Table.SelectRows(Folder.Files("D:\x"),each (not [Attributes][NotContentIndexed]) and ([Attributes][Kind]="Excel File"))[[#"Folder Path"],[Name],[Content]], Transform = Table.TransformColumns(Folder, {{"Content",each fx(Table.Buffer(Excel.Workbook(_, null, true)))}}) in Transform
[/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение [vba]Код
let fx=(FileContents) => let fn =(t as table, SheetName as text, optional NeededColumns as nullable list, optional Filter as nullable text, optional ColumnsToRename as nullable list)=>let Sheet = t{[Item=SheetName,Kind="Sheet"]}[Data], NeededCol = if NeededColumns<>null then Table.SelectColumns(Sheet,NeededColumns) else Sheet, Filtered = if Filter<>null then Table.SelectRows(NeededCol, each Expression.Evaluate(Filter,[_=_])) else NeededCol, Promoted = Table.PromoteHeaders(Filtered, [PromoteAllScalars=true]), RenameCol = if ColumnsToRename<>null then List.Accumulate(ColumnsToRename,Promoted,(a,b)=>try Table.RenameColumns(a,b) otherwise a) else Promoted, FullName = NeededCol{[Column3="ФИО работника:"]}[Column4], AddName = Table.AddColumn(RenameCol, "ФИО", each FullName) in Table.ReorderColumns(AddName,{"ФИО"}&Table.ColumnNames(RenameCol)), Мониторинг_КП_ежекв = fn( FileContents, "Мониторинг КП_ежекв", {"Column2", "Column3", "Column4", "Column5", "Column6"}, "([Column2] <> null) and ([Column4] <> null) and ([Column3] <> ""-"")" ), Оценка_проектов_по_году = fn( FileContents, "Оценка проектов (по году)", {"Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column11", "Column12", "Column18"}, "([Column3] <> null) and ([Column3] <> ""-"") and ([Column5] <> null) and ([Column3] <> 2)", {{"Column5", "Качество балл (факт)"}, {"Column7", "График балл (факт)"}} ), Columns = List.Transform({Оценка_проектов_по_году,Мониторинг_КП_ежекв},each List.Range(Table.ColumnNames(_),0,3)), Join = Table.NestedJoin(Оценка_проектов_по_году,Columns{0},Мониторинг_КП_ежекв,Columns{1},"GetData",JoinKind.LeftOuter) in Table.ExpandTableColumn(Join, "GetData", List.Difference(Table.ColumnNames(Мониторинг_КП_ежекв),Table.ColumnNames(Оценка_проектов_по_году)&List.Combine(Columns))), Folder = Table.SelectRows(Folder.Files("D:\x"),each (not [Attributes][NotContentIndexed]) and ([Attributes][Kind]="Excel File"))[[#"Folder Path"],[Name],[Content]], Transform = Table.TransformColumns(Folder, {{"Content",each fx(Table.Buffer(Excel.Workbook(_, null, true)))}}) in Transform
[/vba] Автор - krosav4ig Дата добавления - 04.09.2019 в 17:21
krosav4ig
Дата: Воскресенье, 08.09.2019, 05:32 |
Сообщение № 2140 | Тема: Сортировка на основании маркировки наименования
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
вариант [vba]Код
Option Explicit Sub Sorting() Dim arr() As Variant, s, maxLevel%, i, j, v, s0$, dic As Object, arr1 As Variant Set dic = CreateObject("scripting.dictionary") With ActiveSheet.UsedRange.Columns(1) ReDim arr(.Rows.Count - 1) For Each s In .Value j = 0: s0 = "'" For Each v In Split(Split(s, "_")(0), ".") s0 = s0 & Application.Dec2Hex(Val(v), 4) j = j + 1 Next If j > maxLevel Then maxLevel = j Else ShiftLeft s0, maxLevel - j End If If Not IsArray(dic(maxLevel)) Then dic(maxLevel) = Array(i) Else arr1 = dic(maxLevel) ReDim Preserve arr1(UBound(arr1) + 1) arr1(UBound(arr1)) = i dic(maxLevel) = arr1 End If arr(i) = Array(s0, s) i = i + 1 Next For j = maxLevel - 1 To 1 Step -1 If IsArray(dic(j)) Then For Each i In dic(j) ShiftLeft arr(i)(0), maxLevel - j Next End If Next Quicksort arr, 0, UBound(arr) .Value = Application.Index(arr, 0, 2) End With End Sub Private Sub ShiftLeft(ByRef s, n) s = s & Application.Rept("0000", n) End Sub Private Sub Quicksort(vArray As Variant, arrLbound As Long, arrUbound As Long) 'Sorts a one-dimensional VBA array from smallest to largest 'using a very fast quicksort algorithm variant. Dim pivotVal As Variant Dim vSwap As Variant Dim tmpLow As Long Dim tmpHi As Long tmpLow = arrLbound tmpHi = arrUbound pivotVal = vArray((arrLbound + arrUbound) \ 2)(0) While (tmpLow <= tmpHi) 'divide While (vArray(tmpLow)(0) < pivotVal And tmpLow < arrUbound) tmpLow = tmpLow + 1 Wend While (pivotVal < vArray(tmpHi)(0) And tmpHi > arrLbound) tmpHi = tmpHi - 1 Wend If (tmpLow <= tmpHi) Then vSwap = vArray(tmpLow) vArray(tmpLow) = vArray(tmpHi) vArray(tmpHi) = vSwap tmpLow = tmpLow + 1 tmpHi = tmpHi - 1 End If Wend If (arrLbound < tmpHi) Then Quicksort vArray, arrLbound, tmpHi 'conquer If (tmpLow < arrUbound) Then Quicksort vArray, tmpLow, arrUbound 'conquer End Sub
[/vba]
вариант [vba]Код
Option Explicit Sub Sorting() Dim arr() As Variant, s, maxLevel%, i, j, v, s0$, dic As Object, arr1 As Variant Set dic = CreateObject("scripting.dictionary") With ActiveSheet.UsedRange.Columns(1) ReDim arr(.Rows.Count - 1) For Each s In .Value j = 0: s0 = "'" For Each v In Split(Split(s, "_")(0), ".") s0 = s0 & Application.Dec2Hex(Val(v), 4) j = j + 1 Next If j > maxLevel Then maxLevel = j Else ShiftLeft s0, maxLevel - j End If If Not IsArray(dic(maxLevel)) Then dic(maxLevel) = Array(i) Else arr1 = dic(maxLevel) ReDim Preserve arr1(UBound(arr1) + 1) arr1(UBound(arr1)) = i dic(maxLevel) = arr1 End If arr(i) = Array(s0, s) i = i + 1 Next For j = maxLevel - 1 To 1 Step -1 If IsArray(dic(j)) Then For Each i In dic(j) ShiftLeft arr(i)(0), maxLevel - j Next End If Next Quicksort arr, 0, UBound(arr) .Value = Application.Index(arr, 0, 2) End With End Sub Private Sub ShiftLeft(ByRef s, n) s = s & Application.Rept("0000", n) End Sub Private Sub Quicksort(vArray As Variant, arrLbound As Long, arrUbound As Long) 'Sorts a one-dimensional VBA array from smallest to largest 'using a very fast quicksort algorithm variant. Dim pivotVal As Variant Dim vSwap As Variant Dim tmpLow As Long Dim tmpHi As Long tmpLow = arrLbound tmpHi = arrUbound pivotVal = vArray((arrLbound + arrUbound) \ 2)(0) While (tmpLow <= tmpHi) 'divide While (vArray(tmpLow)(0) < pivotVal And tmpLow < arrUbound) tmpLow = tmpLow + 1 Wend While (pivotVal < vArray(tmpHi)(0) And tmpHi > arrLbound) tmpHi = tmpHi - 1 Wend If (tmpLow <= tmpHi) Then vSwap = vArray(tmpLow) vArray(tmpLow) = vArray(tmpHi) vArray(tmpHi) = vSwap tmpLow = tmpLow + 1 tmpHi = tmpHi - 1 End If Wend If (arrLbound < tmpHi) Then Quicksort vArray, arrLbound, tmpHi 'conquer If (tmpLow < arrUbound) Then Quicksort vArray, tmpLow, arrUbound 'conquer End Sub
[/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение вариант [vba]Код
Option Explicit Sub Sorting() Dim arr() As Variant, s, maxLevel%, i, j, v, s0$, dic As Object, arr1 As Variant Set dic = CreateObject("scripting.dictionary") With ActiveSheet.UsedRange.Columns(1) ReDim arr(.Rows.Count - 1) For Each s In .Value j = 0: s0 = "'" For Each v In Split(Split(s, "_")(0), ".") s0 = s0 & Application.Dec2Hex(Val(v), 4) j = j + 1 Next If j > maxLevel Then maxLevel = j Else ShiftLeft s0, maxLevel - j End If If Not IsArray(dic(maxLevel)) Then dic(maxLevel) = Array(i) Else arr1 = dic(maxLevel) ReDim Preserve arr1(UBound(arr1) + 1) arr1(UBound(arr1)) = i dic(maxLevel) = arr1 End If arr(i) = Array(s0, s) i = i + 1 Next For j = maxLevel - 1 To 1 Step -1 If IsArray(dic(j)) Then For Each i In dic(j) ShiftLeft arr(i)(0), maxLevel - j Next End If Next Quicksort arr, 0, UBound(arr) .Value = Application.Index(arr, 0, 2) End With End Sub Private Sub ShiftLeft(ByRef s, n) s = s & Application.Rept("0000", n) End Sub Private Sub Quicksort(vArray As Variant, arrLbound As Long, arrUbound As Long) 'Sorts a one-dimensional VBA array from smallest to largest 'using a very fast quicksort algorithm variant. Dim pivotVal As Variant Dim vSwap As Variant Dim tmpLow As Long Dim tmpHi As Long tmpLow = arrLbound tmpHi = arrUbound pivotVal = vArray((arrLbound + arrUbound) \ 2)(0) While (tmpLow <= tmpHi) 'divide While (vArray(tmpLow)(0) < pivotVal And tmpLow < arrUbound) tmpLow = tmpLow + 1 Wend While (pivotVal < vArray(tmpHi)(0) And tmpHi > arrLbound) tmpHi = tmpHi - 1 Wend If (tmpLow <= tmpHi) Then vSwap = vArray(tmpLow) vArray(tmpLow) = vArray(tmpHi) vArray(tmpHi) = vSwap tmpLow = tmpLow + 1 tmpHi = tmpHi - 1 End If Wend If (arrLbound < tmpHi) Then Quicksort vArray, arrLbound, tmpHi 'conquer If (tmpLow < arrUbound) Then Quicksort vArray, tmpLow, arrUbound 'conquer End Sub
[/vba] Автор - krosav4ig Дата добавления - 08.09.2019 в 05:32