Что нового

Autoit Debugger проблема кодировки

jam

Новичок
Сообщения
13
Репутация
0
Добрый вечер!

Столкнулся с такой проблемой: после открытия и запуска на отладку своего скрипта в Autoit Debugger (при одновременном открытии скрипта в SciTE) весь текст кириллицы (русские символы) был автоматически преобразован в другую кодировку и перезаписан в скрипте.
Тоесть, после выхода из отладчика и запуске скрипта в SciTE программа выдает ошибку из-за того, что она не может идентифицировать код, измененный Autoit Debugger-ом.
Кто-нибудь сталкивался с чем-то подобным? Как вернуть код скрипта в том виде, который был до открытия в отладчике? :'(

Спасибо заранее!
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Удалить отладчик и не пользоваться им пока не сделают поддержку русских символов.
Код вернуть невозможно (?). Выложи файл.
 
Автор
J

jam

Новичок
Сообщения
13
Репутация
0
пожалуйста

Код:
$sheet.Range("N1").FormulaLocal = 'date'
		 $sheet.Range("O1").FormulaLocal = 'home team'
		 $sheet.Range("P1").FormulaLocal = 'home Goalie'
		 $sheet.Range("Q1").FormulaLocal = 'OT=1 or 2'
		 $sheet.Range("R1").FormulaLocal = 'away team'
		 $sheet.Range("S1").FormulaLocal = 'away Goalie'
		 $sheet.Range("T1").FormulaLocal = 'SO =1 or 2'
		 $sheet.Range("U1").FormulaLocal = 'units if tH'
		 $sheet.Range("V1").FormulaLocal = 'units if tA'
		 $sheet.Range("W1").FormulaLocal = 'base O/U'
		 $sheet.Range("X1").FormulaLocal = 'units U'
		 $sheet.Range("Y1").FormulaLocal = 'units O'
		 $sheet.Range("Z1").FormulaLocal = 'result H'
		 $sheet.Range("AA1").FormulaLocal = 'result A'
		 $sheet.Range("AB1").FormulaLocal = 'k H'
		 $sheet.Range("AC1").FormulaLocal = 'k A'
		 $sheet.Range("AD1").FormulaLocal = 'k t'
		 $sheet.Range("AE1").FormulaLocal = 'opp'
		 $sheet.Range("AF1").FormulaLocal = 'PO=1 or Reg=2'
		 $sheet.Range("AG1").FormulaLocal = 'X=1 or 2'
		 $sheet.Range("AH1").FormulaLocal = 'score'
		 $sheet.Range("GA1").FormulaLocal = 'am line U/O'
		 $sheet.Range("GC1").FormulaLocal = 'am line W/L'
		 $sheet.Range("GG1").FormulaLocal = 'team'

; вставка формул
		 ; если вставка в Excel из IE преобразовывает в формат ММ/ДД/ГГГГ, меняет на ММ/ДД/ГГГГ. Кроме того, ищет знак "/" и разбивает значения на ДД, ММ и ГГ и преобразовывает в дату в зависимости от длины строки: 7 или 8
		 $sheet.Range("N2").FormulaLocal = '=ЕСЛИ(ЕОШИБКА(ДАТА(ГОД(A2);ДЕНЬ(A2);МЕСЯЦ(A2)));ЕСЛИ(ДЛСТР(A2)=7;ДАТА(ЗНАЧЕН(ПРАВСИМВ(A2;2))+2000;ЗНАЧЕН(ЛЕВСИМВ(A2;1));ЗНАЧЕН(ЛЕВСИМВ(ПСТР(A2;3;20);2)));ЕСЛИ(ДЛСТР(A2)=8;ДАТА(ЗНАЧЕН(ПРАВСИМВ(A2;2))+2000;ЗНАЧЕН(ЛЕВСИМВ(A2;2));ЗНАЧЕН(ЛЕВСИМВ(ПСТР(A2;4;20);2)));0));ДАТА(ГОД(A2);ДЕНЬ(A2);МЕСЯЦ(A2)))'
		 $sheet.Range("O2").FormulaLocal = '=ЕСЛИ(ЕОШИБКА(НАЙТИ("@";B2));GG2;ПСТР(B2;3;90))'
		 $sheet.Range("P2").FormulaLocal = '=ЕСЛИ(O2=GG2;D2;E2)'
		 $sheet.Range("Q2").FormulaLocal = '=ЕСЛИ(ЕОШИБКА(ПОИСК("ot";C2));2;1)'
		 $sheet.Range("R2").FormulaLocal = '=ЕСЛИ(O2=GG2;B2;GG2)'
		 $sheet.Range("S2").FormulaLocal = '=ЕСЛИ(P2=D2;E2;D2)'
		 $sheet.Range("T2").FormulaLocal = '=ЕСЛИ(ЕОШИБКА(ПОИСК("so";C2));2;1)'
		 $sheet.Range("U2").FormulaLocal = '=ЕСЛИ(СУММПРОИЗВ((Z2-AA2>0)*(O2=GG2));ЕСЛИ(ЕОШИБКА(ЕСЛИ(GC2>0;GC2/100+1;1+100/-GC2));0;ЕСЛИ(GC2>0;GC2/100+1;1+100/-GC2))-1;ЕСЛИ(СУММПРОИЗВ((Z2-AA2>0)*(O2<>GG2));"";ЕСЛИ(СУММПРОИЗВ((Z2-AA2<0)*(O2<>GG2));"";-1)))'
		 $sheet.Range("V2").FormulaLocal = '=ЕСЛИ(СУММПРОИЗВ((Z2-AA2<0)*(R2=GG2));ЕСЛИ(ЕОШИБКА(ЕСЛИ(GC2>0;GC2/100+1;1+100/-GC2));0;ЕСЛИ(GC2>0;GC2/100+1;1+100/-GC2))-1;ЕСЛИ(СУММПРОИЗВ((Z2-AA2<0)*(R2<>GG2));"";ЕСЛИ(СУММПРОИЗВ((Z2-AA2>0)*(R2<>GG2));"";-1)))'
		 ; функция ЗНАЧЕН преобразовывает текст в число, а функция ПОДСТАВИТЬ делает аналог Ctrk-h с вставкой в ту же ячеку
		 $sheet.Range("W2").FormulaLocal = '=ЗНАЧЕН(ПОДСТАВИТЬ(ПСТР(G2;3;НАЙТИ(" ";G2;3)-2);".";","))'
		 $sheet.Range("X2").FormulaLocal = '=ЕСЛИ(ЕСЛИ(Z2+AA2<W2;ЕСЛИ(GA2>0;GA2/100+1;ЕСЛИ(GA2<0;(1+100/-GA2);0))-1;ЕСЛИ(Z2+AA2=W2;0;-1))>2;0;ЕСЛИ(Z2+AA2<W2;ЕСЛИ(GA2>0;GA2/100+1;ЕСЛИ(GA2<0;(1+100/-GA2);0))-1;ЕСЛИ(Z2+AA2=W2;0;-1)))'
		 $sheet.Range("Y2").FormulaLocal = '=ЕСЛИ(ЕСЛИ(Z2+AA2>W2;ЕСЛИ(GA2>0;GA2/100+1;ЕСЛИ(GA2<0;(1+100/-GA2);0))-1;ЕСЛИ(Z2+AA2=W2;0;-1))>2;0;ЕСЛИ(Z2+AA2>W2;ЕСЛИ(GA2>0;GA2/100+1;ЕСЛИ(GA2<0;(1+100/-GA2);0))-1;ЕСЛИ(Z2+AA2=W2;0;-1)))'
		 $sheet.Range("Z2").FormulaLocal = '=ЕСЛИ(O2=GG2;ЕСЛИ(ЕОШИБКА(ЗНАЧЕН(ПОДСТАВИТЬ(ПСТР(AH2;1;НАЙТИ("-";AH2)-1);" ";"")));0;ЗНАЧЕН(ПОДСТАВИТЬ(ПСТР(AH2;1;НАЙТИ("-";AH2)-1);" ";"")));ЕСЛИ(ЕОШИБКА(ЗНАЧЕН(ПОДСТАВИТЬ(ПРАВСИМВ(AH2;ДЛСТР(AH2)-НАЙТИ("-";AH2));" ";"")));0;ЗНАЧЕН(ПОДСТАВИТЬ(ПРАВСИМВ(AH2;ДЛСТР(AH2)-НАЙТИ("-";AH2));" ";""))))'
		 $sheet.Range("AA2").FormulaLocal = '=ЕСЛИ(O2=GG2;ЕСЛИ(ЕОШИБКА(ЗНАЧЕН(ПОДСТАВИТЬ(ПРАВСИМВ(AH2;ДЛСТР(AH2)-НАЙТИ("-";AH2));" ";"")));0;ЗНАЧЕН(ПОДСТАВИТЬ(ПРАВСИМВ(AH2;ДЛСТР(AH2)-НАЙТИ("-";AH2));" ";"")));ЕСЛИ(ЕОШИБКА(ЗНАЧЕН(ПОДСТАВИТЬ(ПСТР(AH2;1;НАЙТИ("-";AH2)-1);" ";"")));0;ЗНАЧЕН(ПОДСТАВИТЬ(ПСТР(AH2;1;НАЙТИ("-";AH2)-1);" ";""))))'
		 $sheet.Range("AB2").FormulaLocal = '=ЕСЛИ(U2="";0;ЕСЛИ(GC2<0;100/-GC2+1;GC2/100+1))'
		 $sheet.Range("AC2").FormulaLocal = '=ЕСЛИ(V2="";0;ЕСЛИ(GC2<0;100/-GC2+1;GC2/100+1))'
		 $sheet.Range("AD2").FormulaLocal = '=МАКС(AB2;AC2)'
		 $sheet.Range("AE2").FormulaLocal = '=ЕСЛИ(O2=GG2;R2;O2)'
		 ; если строка не выше, чем 4-я, то берется вверх и вниз 8 значений, проверяется, сколько из них неодинаковых, и если из 7 хотя бы 4 окажутся одинаковыми, возвращает 1. функция ЧАСТОТА разбивает весь диапазон из 8 значений на отрезки (например, если 8 значений проверяется и из них 3 неодинаковые, то диапазон делится на 4 отрезка, где неодинаковые значения - точки на нем)
		 $sheet.Range("AF2").FormulaLocal = '=ЕСЛИ(МАКС(ЧАСТОТА(СТРОКА(СМЕЩ(AE2;ЕСЛИ(СТРОКА()>=5;-3;2-СТРОКА());0;8;1));(СМЕЩ(AE2;ЕСЛИ(СТРОКА()>=5;-3;2-СТРОКА());0;7;1)<>AE2)*СТРОКА(СМЕЩ(AE2;ЕСЛИ(СТРОКА()>=5;-3;2-СТРОКА());0;7;1)))-1)>=4;1;2)'
		 $sheet.Range("AG2").FormulaLocal = '=ЕСЛИ(ИЛИ(Q2=1;T2=1);1;2)'
		 ; убирает все лишнее, кроме счета через знак "-"
		 $sheet.Range("AH2").FormulaLocal = '=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(C2;"(OT)";"");"(SO)";"");"L";"");"W";"")'
		 $sheet.Range("GA2").FormulaLocal = '=ЗНАЧЕН(ПРАВСИМВ(ПСТР(G2;3;20);ДЛСТР(ПСТР(G2;3;20))-НАЙТИ(" ";ПСТР(G2;3;20))))'
		 $sheet.Range("GC2").FormulaLocal = '=ЕСЛИ(ЕОШИБКА(ЗНАЧЕН(ПОДСТАВИТЬ(ПРАВСИМВ(F2;ДЛСТР(F2)-НАЙТИ("L";F2));" ";"")));0;ЗНАЧЕН(ПОДСТАВИТЬ(ПРАВСИМВ(F2;ДЛСТР(F2)-НАЙТИ("L";F2));" ";"")))+ЕСЛИ(ЕОШИБКА(ЗНАЧЕН(ПОДСТАВИТЬ(ПРАВСИМВ(F2;ДЛСТР(F2)-НАЙТИ("W";F2));" ";"")));0;ЗНАЧЕН(ПОДСТАВИТЬ(ПРАВСИМВ(F2;ДЛСТР(F2)-НАЙТИ("W";F2));" ";"")))'
	     $sheet.Range("N2:GD2").AutoFill ($sheet.Range("N2:GD10000"))

		 Sleep(2000)

; копирование команды с результатами на свой отдельный лист
		 ; фильтр выбирает даты, больше чем 01.01.2000 (36526)
		 $sheet.Range("N:GG").AutoFilter(1, '>36526')
		 Sleep(2000)
		 SeparateTeams($oExcel, 30)
		 Sleep(4000)

; для каждой команды определенные результаты выводятся на первый лист
		 $sheet.Columns('A:HH').Delete()
		 
		 
		 
		 TeamsinOne($oExcel, 30)
		 $oExcel.Worksheets('Washington').Range('A1:AZ1').Copy
		 $sheet.Range("A1").PasteSpecial(-4163, -4142)

; удаляем лишние листы
		 DelSheets($oExcel, 1)
		 _ExcelSheetDelete($oExcel, "Лист2")
		 _ExcelSheetDelete($oExcel, "Лист3")

; сопоставление каждому матчу статистику оппа
		 $sheet.Range("BB2").FormulaLocal = '=СЦЕПИТЬ(A2;B2;E2;M2;N2)'
		 $sheet.Range("BC2").FormulaLocal = '=СЦЕПИТЬ(A2;B2;E2;M2;N2)'
		 $sheet.Range("BD2").FormulaLocal = '=ЕСЛИ(AS2=B2;E2;B2)'
		 $sheet.Range("BE2").FormulaLocal = '=ЕСЛИ(BD2=B2;C2;F2)'
		 $sheet.Range("BF2").FormulaLocal = '=ЕСЛИ(BD2=B2;D2;G2)'
		 $sheet.Range("BB2:BF2").AutoFill ($sheet.Range("BB2:BF10000"))
		 $sheet.Range('BB2:BF10000').Copy
		 $sheet.Range("BB2").PasteSpecial(-4163, -4142)

		 $sheet.Range("BG2").FormulaLocal = '=СУММЕСЛИ($BC:$BC;$BB2;P:P)-P2'
		 $sheet.Range("BG2").AutoFill ($sheet.Range("BG2:BG10000"))
		 $sheet.Range("BG2:BG10000").AutoFill ($sheet.Range("BG2:CR10000"))
		 $sheet.Range('BG2:CR10000').Copy
		 $sheet.Range("BG2").PasteSpecial(-4163, -4142)

		 $sheet.Range("BD1").FormulaLocal = 'opp team'
		 $sheet.Range("BE1").FormulaLocal = 'opp Goalie'
		 $sheet.Range("BF1").FormulaLocal = 'opp OT=1 or 2'
		 $sheet.Range("BG1").FormulaLocal = '=СЦЕПИТЬ("opp ";P1)'
		 $sheet.Range("BG1").AutoFill ($sheet.Range("BG1:CR1"))
		 $sheet.Range('BG1:CR1').Copy
		 $sheet.Range("BG1").PasteSpecial(-4163, -4142)

; определение последней строки на листе
		 $lastrowSheet = $sheet.Range('A10000').End(-4162).row

; удаление лишней информации и присвоение форматов
		 $sheet.Range("A" & $lastrowSheet + 1 & ":" & "DA10000").Clear

		 $sheet.Range('A:A').NumberFormat = "ДД.ММ.ГГГГ"
		 $sheet.Range('T:W').NumberFormat = "0%"
		 $sheet.Range('AT:BA').NumberFormat = "0%"
		 $sheet.Range('BK:BN').NumberFormat = "0%"
		 $sheet.Range('CK:CR').NumberFormat = "0%"
		 $sheet.Range('H:L').NumberFormat = "# ##0.0"
		 $sheet.Range('R:R').NumberFormat = "# ##0.0"
		 $sheet.Range('AH:AL').NumberFormat = "# ##0.0"
		 $sheet.Range('AP:AR').NumberFormat = "# ##0.0"
		 $sheet.Range('BI:BI').NumberFormat = "# ##0.0"
		 $sheet.Range('BY:CC').NumberFormat = "# ##0.0"
		 $sheet.Range('CG:CI').NumberFormat = "# ##0.0"
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
jam
Попробовал TCode, Shtirlitz и онлайн перекодировщик http://2cyr.com/decode/?lang=ru ни один не возвращает. Но по объёму текста переписать вроде 15 минут.
 
Автор
J

jam

Новичок
Сообщения
13
Репутация
0
спасибо за совет, тоже думал насчет онлайн кодировщика для перекодировки отдельных фраз.
однако онлайн не дает точного результата, например:

'=ЕСЛИ(Е�ШИБК�(З��ЧЕ�(П�ДСТ�ВИТЬ(П� �ВСИМВ(F2;ДЛСТ� (F2)-��ЙТИ("L";F2));" ";"")));0;З��ЧЕ�(П�ДСТ�ВИТЬ(П� �ВСИМВ(F2;ДЛСТ� (F2)-��ЙТИ("L";F2));" ";"")))+ЕСЛИ(Е�ШИБК�(З��ЧЕ�(П�ДСТ�ВИТЬ(П� �ВСИМВ(F2;ДЛСТ� (F2)-��ЙТИ("W";F2));" ";"")));0;З��ЧЕ�(П�ДСТ�ВИТЬ(П� �ВСИМВ(F2;ДЛСТ� (F2)-��ЙТИ("W";F2));" ";"")))'

как со Штрилицем и TCode? результаты не лучше?
 
G

GenoTIP

Гость
По-моему это уже результат какой-то кодировки в кодирвоку, то есть надо из одного в другой, а из него в кириллицу
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Да, изначально ни на что не похожий. Если учесть что каждый второй символ Ğ, то вообще какой нибудь юникод интерпретируемый как ASCI.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
при первичной перекодировке, инструмент не знал как перевести некоторые символы и заменил их на placeholder. то есть информация именно этого символа уже потеряна. при обратной перекодировке там будет знак "?" внутри ромба - �. то есть это уже никак не исправить. но текст скорее всего можно восстановить более менее.
Код:
$sheet.Range("N1").FormulaLocal = 'date'
$sheet.Range("O1").FormulaLocal = 'home team'
$sheet.Range("P1").FormulaLocal = 'home Goalie'
$sheet.Range("Q1").FormulaLocal = 'OT=1 or 2'
$sheet.Range("R1").FormulaLocal = 'away team'
$sheet.Range("S1").FormulaLocal = 'away Goalie'
$sheet.Range("T1").FormulaLocal = 'SO =1 or 2'
$sheet.Range("U1").FormulaLocal = 'units if tH'
$sheet.Range("V1").FormulaLocal = 'units if tA'
$sheet.Range("W1").FormulaLocal = 'base O/U'
$sheet.Range("X1").FormulaLocal = 'units U'
$sheet.Range("Y1").FormulaLocal = 'units O'
$sheet.Range("Z1").FormulaLocal = 'result H'
$sheet.Range("AA1").FormulaLocal = 'result A'
$sheet.Range("AB1").FormulaLocal = 'k H'
$sheet.Range("AC1").FormulaLocal = 'k A'
$sheet.Range("AD1").FormulaLocal = 'k t'
$sheet.Range("AE1").FormulaLocal = 'opp'
$sheet.Range("AF1").FormulaLocal = 'PO=1 or Reg=2'
$sheet.Range("AG1").FormulaLocal = 'X=1 or 2'
$sheet.Range("AH1").FormulaLocal = 'score'
$sheet.Range("GA1").FormulaLocal = 'am line U/O'
$sheet.Range("GC1").FormulaLocal = 'am line W/L'
$sheet.Range("GG1").FormulaLocal = 'team'

; в�тавка формул
; е�ли в�тавка в Excel из IE преобразовывает в формат ММ/ДД/ГГГГ, мен�ет на ММ/ДД/ГГГГ. Кроме того, ищет знак "/" и разбивает значени� на ДД, ММ и ГГ и преобразовывает в дату в зави�имо�ти от длины �троки: 7 или 8
$sheet.Range("N2").FormulaLocal = '=ЕСЛИ(Е�ШИБК�(Д�Т�(Г�Д(A2);ДЕ�Ь(A2);МЕСЯЦ(A2)));ЕСЛИ(ДЛСТ� (A2)=7;Д�Т�(З��ЧЕ�(П� �ВСИМВ(A2;2))+2000;З��ЧЕ�(ЛЕВСИМВ(A2;1));З��ЧЕ�(ЛЕВСИМВ(ПСТ� (A2;3;20);2)));ЕСЛИ(ДЛСТ� (A2)=8;Д�Т�(З��ЧЕ�(П� �ВСИМВ(A2;2))+2000;З��ЧЕ�(ЛЕВСИМВ(A2;2));З��ЧЕ�(ЛЕВСИМВ(ПСТ� (A2;4;20);2)));0));Д�Т�(Г�Д(A2);ДЕ�Ь(A2);МЕСЯЦ(A2)))'
$sheet.Range("O2").FormulaLocal = '=ЕСЛИ(Е�ШИБК�(��ЙТИ("@";B2));GG2;ПСТ� (B2;3;90))'
$sheet.Range("P2").FormulaLocal = '=ЕСЛИ(O2=GG2;D2;E2)'
$sheet.Range("Q2").FormulaLocal = '=ЕСЛИ(Е�ШИБК�(П�ИСК("ot";C2));2;1)'
$sheet.Range("R2").FormulaLocal = '=ЕСЛИ(O2=GG2;B2;GG2)'
$sheet.Range("S2").FormulaLocal = '=ЕСЛИ(P2=D2;E2;D2)'
$sheet.Range("T2").FormulaLocal = '=ЕСЛИ(Е�ШИБК�(П�ИСК("so";C2));2;1)'
$sheet.Range("U2").FormulaLocal = '=ЕСЛИ(СУММП� �ИЗВ((Z2-AA2>0)*(O2=GG2));ЕСЛИ(Е�ШИБК�(ЕСЛИ(GC2>0;GC2/100+1;1+100/-GC2));0;ЕСЛИ(GC2>0;GC2/100+1;1+100/-GC2))-1;ЕСЛИ(СУММП� �ИЗВ((Z2-AA2>0)*(O2<>GG2));"";ЕСЛИ(СУММП� �ИЗВ((Z2-AA2<0)*(O2<>GG2));"";-1)))'
$sheet.Range("V2").FormulaLocal = '=ЕСЛИ(СУММП� �ИЗВ((Z2-AA2<0)*(R2=GG2));ЕСЛИ(Е�ШИБК�(ЕСЛИ(GC2>0;GC2/100+1;1+100/-GC2));0;ЕСЛИ(GC2>0;GC2/100+1;1+100/-GC2))-1;ЕСЛИ(СУММП� �ИЗВ((Z2-AA2<0)*(R2<>GG2));"";ЕСЛИ(СУММП� �ИЗВ((Z2-AA2>0)*(R2<>GG2));"";-1)))'
; функци� З��ЧЕ� преобразовывает тек�т в чи�ло, а функци� П�ДСТ�ВИТЬ делает аналог Ctrk-h � в�тавкой в ту же �чеку
$sheet.Range("W2").FormulaLocal = '=З��ЧЕ�(П�ДСТ�ВИТЬ(ПСТ� (G2;3;��ЙТИ(" ";G2;3)-2);".";","))'
$sheet.Range("X2").FormulaLocal = '=ЕСЛИ(ЕСЛИ(Z2+AA2<W2;ЕСЛИ(GA2>0;GA2/100+1;ЕСЛИ(GA2<0;(1+100/-GA2);0))-1;ЕСЛИ(Z2+AA2=W2;0;-1))>2;0;ЕСЛИ(Z2+AA2<W2;ЕСЛИ(GA2>0;GA2/100+1;ЕСЛИ(GA2<0;(1+100/-GA2);0))-1;ЕСЛИ(Z2+AA2=W2;0;-1)))'
$sheet.Range("Y2").FormulaLocal = '=ЕСЛИ(ЕСЛИ(Z2+AA2>W2;ЕСЛИ(GA2>0;GA2/100+1;ЕСЛИ(GA2<0;(1+100/-GA2);0))-1;ЕСЛИ(Z2+AA2=W2;0;-1))>2;0;ЕСЛИ(Z2+AA2>W2;ЕСЛИ(GA2>0;GA2/100+1;ЕСЛИ(GA2<0;(1+100/-GA2);0))-1;ЕСЛИ(Z2+AA2=W2;0;-1)))'
$sheet.Range("Z2").FormulaLocal = '=ЕСЛИ(O2=GG2;ЕСЛИ(Е�ШИБК�(З��ЧЕ�(П�ДСТ�ВИТЬ(ПСТ� (AH2;1;��ЙТИ("-";AH2)-1);" ";"")));0;З��ЧЕ�(П�ДСТ�ВИТЬ(ПСТ� (AH2;1;��ЙТИ("-";AH2)-1);" ";"")));ЕСЛИ(Е�ШИБК�(З��ЧЕ�(П�ДСТ�ВИТЬ(П� �ВСИМВ(AH2;ДЛСТ� (AH2)-��ЙТИ("-";AH2));" ";"")));0;З��ЧЕ�(П�ДСТ�ВИТЬ(П� �ВСИМВ(AH2;ДЛСТ� (AH2)-��ЙТИ("-";AH2));" ";""))))'
$sheet.Range("AA2").FormulaLocal = '=ЕСЛИ(O2=GG2;ЕСЛИ(Е�ШИБК�(З��ЧЕ�(П�ДСТ�ВИТЬ(П� �ВСИМВ(AH2;ДЛСТ� (AH2)-��ЙТИ("-";AH2));" ";"")));0;З��ЧЕ�(П�ДСТ�ВИТЬ(П� �ВСИМВ(AH2;ДЛСТ� (AH2)-��ЙТИ("-";AH2));" ";"")));ЕСЛИ(Е�ШИБК�(З��ЧЕ�(П�ДСТ�ВИТЬ(ПСТ� (AH2;1;��ЙТИ("-";AH2)-1);" ";"")));0;З��ЧЕ�(П�ДСТ�ВИТЬ(ПСТ� (AH2;1;��ЙТИ("-";AH2)-1);" ";""))))'
$sheet.Range("AB2").FormulaLocal = '=ЕСЛИ(U2="";0;ЕСЛИ(GC2<0;100/-GC2+1;GC2/100+1))'
$sheet.Range("AC2").FormulaLocal = '=ЕСЛИ(V2="";0;ЕСЛИ(GC2<0;100/-GC2+1;GC2/100+1))'
$sheet.Range("AD2").FormulaLocal = '=М�КС(AB2;AC2)'
$sheet.Range("AE2").FormulaLocal = '=ЕСЛИ(O2=GG2;R2;O2)'
; е�ли �трока не выше, чем 4-�, то берет�� вверх и вниз 8 значений, провер�ет��, �колько из них неодинаковых, и е�ли из 7 хот� бы 4 окажут�� одинаковыми, возвращает 1. функци� Ч�СТ�Т� разбивает ве�ь диапазон из 8 значений на отрезки (например, е�ли 8 значений провер�ет�� и из них 3 неодинаковые, то диапазон делит�� на 4 отрезка, где неодинаковые значени� - точки на нем)
$sheet.Range("AF2").FormulaLocal = '=ЕСЛИ(М�КС(Ч�СТ�Т�(СТ� �К�(СМЕЩ(AE2;ЕСЛИ(СТ� �К�()>=5;-3;2-СТ� �К�());0;8;1));(СМЕЩ(AE2;ЕСЛИ(СТ� �К�()>=5;-3;2-СТ� �К�());0;7;1)<>AE2)*СТ� �К�(СМЕЩ(AE2;ЕСЛИ(СТ� �К�()>=5;-3;2-СТ� �К�());0;7;1)))-1)>=4;1;2)'
$sheet.Range("AG2").FormulaLocal = '=ЕСЛИ(ИЛИ(Q2=1;T2=1);1;2)'
; убирает в�е лишнее, кроме �чета через знак "-"
$sheet.Range("AH2").FormulaLocal = '=П�ДСТ�ВИТЬ(П�ДСТ�ВИТЬ(П�ДСТ�ВИТЬ(П�ДСТ�ВИТЬ(C2;"(OT)";"");"(SO)";"");"L";"");"W";"")'
$sheet.Range("GA2").FormulaLocal = '=З��ЧЕ�(П� �ВСИМВ(ПСТ� (G2;3;20);ДЛСТ� (ПСТ� (G2;3;20))-��ЙТИ(" ";ПСТ� (G2;3;20))))'
$sheet.Range("GC2").FormulaLocal = '=ЕСЛИ(Е�ШИБК�(З��ЧЕ�(П�ДСТ�ВИТЬ(П� �ВСИМВ(F2;ДЛСТ� (F2)-��ЙТИ("L";F2));" ";"")));0;З��ЧЕ�(П�ДСТ�ВИТЬ(П� �ВСИМВ(F2;ДЛСТ� (F2)-��ЙТИ("L";F2));" ";"")))+ЕСЛИ(Е�ШИБК�(З��ЧЕ�(П�ДСТ�ВИТЬ(П� �ВСИМВ(F2;ДЛСТ� (F2)-��ЙТИ("W";F2));" ";"")));0;З��ЧЕ�(П�ДСТ�ВИТЬ(П� �ВСИМВ(F2;ДЛСТ� (F2)-��ЙТИ("W";F2));" ";"")))'
$sheet.Range("N2:GD2").AutoFill ($sheet.Range("N2:GD10000"))

Sleep(2000)

; копирование команды � результатами на �вой отдельный ли�т
; фильтр выбирает даты, больше чем 01.01.2000 (36526)
$sheet.Range("N:GG").AutoFilter(1, '>36526')
Sleep(2000)
SeparateTeams($oExcel, 30)
Sleep(4000)

; дл� каждой команды определенные результаты вывод�т�� на первый ли�т
$sheet.Columns('A:HH').Delete()



TeamsinOne($oExcel, 30)
$oExcel.Worksheets('Washington').Range('A1:AZ1').Copy
$sheet.Range("A1").PasteSpecial(-4163, -4142)

; удал�ем лишние ли�ты
DelSheets($oExcel, 1)
_ExcelSheetDelete($oExcel, "Ли�т2")
_ExcelSheetDelete($oExcel, "Ли�т3")

; �опо�тавление каждому матчу �тати�тику оппа
$sheet.Range("BB2").FormulaLocal = '=СЦЕПИТЬ(A2;B2;E2;M2;N2)'
$sheet.Range("BC2").FormulaLocal = '=СЦЕПИТЬ(A2;B2;E2;M2;N2)'
$sheet.Range("BD2").FormulaLocal = '=ЕСЛИ(AS2=B2;E2;B2)'
$sheet.Range("BE2").FormulaLocal = '=ЕСЛИ(BD2=B2;C2;F2)'
$sheet.Range("BF2").FormulaLocal = '=ЕСЛИ(BD2=B2;D2;G2)'
$sheet.Range("BB2:BF2").AutoFill ($sheet.Range("BB2:BF10000"))
$sheet.Range('BB2:BF10000').Copy
$sheet.Range("BB2").PasteSpecial(-4163, -4142)

$sheet.Range("BG2").FormulaLocal = '=СУММЕСЛИ($BC:$BC;$BB2;P:P)-P2'
$sheet.Range("BG2").AutoFill ($sheet.Range("BG2:BG10000"))
$sheet.Range("BG2:BG10000").AutoFill ($sheet.Range("BG2:CR10000"))
$sheet.Range('BG2:CR10000').Copy
$sheet.Range("BG2").PasteSpecial(-4163, -4142)

$sheet.Range("BD1").FormulaLocal = 'opp team'
$sheet.Range("BE1").FormulaLocal = 'opp Goalie'
$sheet.Range("BF1").FormulaLocal = 'opp OT=1 or 2'
$sheet.Range("BG1").FormulaLocal = '=СЦЕПИТЬ("opp ";P1)'
$sheet.Range("BG1").AutoFill ($sheet.Range("BG1:CR1"))
$sheet.Range('BG1:CR1').Copy
$sheet.Range("BG1").PasteSpecial(-4163, -4142)

; определение по�ледней �троки на ли�те
$lastrowSheet = $sheet.Range('A10000').End(-4162).row

; удаление лишней информации и при�воение форматов
$sheet.Range("A" & $lastrowSheet + 1 & ":" & "DA10000").Clear

$sheet.Range('A:A').NumberFormat = "ДД.ММ.ГГГГ"
$sheet.Range('T:W').NumberFormat = "0%"
$sheet.Range('AT:BA').NumberFormat = "0%"
$sheet.Range('BK:BN').NumberFormat = "0%"
$sheet.Range('CK:CR').NumberFormat = "0%"
$sheet.Range('H:L').NumberFormat = "# ##0.0"
$sheet.Range('R:R').NumberFormat = "# ##0.0"
$sheet.Range('AH:AL').NumberFormat = "# ##0.0"
$sheet.Range('AP:AR').NumberFormat = "# ##0.0"
$sheet.Range('BI:BI').NumberFormat = "# ##0.0"
$sheet.Range('BY:CC').NumberFormat = "# ##0.0"
$sheet.Range('CG:CI').NumberFormat = "# ##0.0"
 
Автор
J

jam

Новичок
Сообщения
13
Репутация
0
ясно. тему можно считать закрытой.
спасибо всем, кто принял участие в обсуждении.
 
Верх