Имеется таблица соответствия букв и цифр. Справа в столбце K пишем 3 слова в отдельных ячейках. В столбце L должна получиться прямая замена букв на соответствующие им цифры. Для примера руками заполнил что должно получиться автоматически. Всё
Дядьки, приветствую.
Имеется таблица соответствия букв и цифр. Справа в столбце K пишем 3 слова в отдельных ячейках. В столбце L должна получиться прямая замена букв на соответствующие им цифры. Для примера руками заполнил что должно получиться автоматически. Всё vyacheslavshashkin
Вариант на Power Query (принцип подсмотрен на профильном канале в телеге) [vba]
Код
let from = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], fullrec = [а="1",А="1",б="2",Б="2",в="3",В="3",г="4",Г="4",д="5",Д="5",е="6",Е="6",ё="7",Ё="7",ж="8",Ж="8",з="9",З="9",и="1", И="1",й="11",Й="2",к="3",К="3",л="4",Л="4",м="5",М="5",н="6",Н="6",о="7",О="7",п="8",П="8",р="9",Р="9",с="1",С="1", т="2",Т="2",у="3",У="3",ф="4",Ф="4",х="5",Х="5",ц="6",Ц="6",ч="7",Ч="7",ш="8",Ш="8",щ="9",Щ="9",ъ="1",Ъ="1",ы="2", Ы="2",ь="3",Ь="3",э="4",Э="4",ю="5",Ю="5",я="6",Я="6",null=" "], out =Table.TransformColumns(from,{"Дата",(x)=>Text.Combine(List.Transform(Text.ToList(x),(y)=>Record.Field(fullrec,y)))}), ren = Table.TransformColumnTypes(Table.RenameColumns(out,{"Дата", "Числа"}),{"Числа", Int64.Type}) in ren
[/vba] Плюс в том, что в плане наличия внутренней таблицы соответствия запрос практически портабельный. Хотя, наверняка можно еще что-нибудь оптимизировать.
Вариант на Power Query (принцип подсмотрен на профильном канале в телеге) [vba]
Код
let from = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], fullrec = [а="1",А="1",б="2",Б="2",в="3",В="3",г="4",Г="4",д="5",Д="5",е="6",Е="6",ё="7",Ё="7",ж="8",Ж="8",з="9",З="9",и="1", И="1",й="11",Й="2",к="3",К="3",л="4",Л="4",м="5",М="5",н="6",Н="6",о="7",О="7",п="8",П="8",р="9",Р="9",с="1",С="1", т="2",Т="2",у="3",У="3",ф="4",Ф="4",х="5",Х="5",ц="6",Ц="6",ч="7",Ч="7",ш="8",Ш="8",щ="9",Щ="9",ъ="1",Ъ="1",ы="2", Ы="2",ь="3",Ь="3",э="4",Э="4",ю="5",Ю="5",я="6",Я="6",null=" "], out =Table.TransformColumns(from,{"Дата",(x)=>Text.Combine(List.Transform(Text.ToList(x),(y)=>Record.Field(fullrec,y)))}), ren = Table.TransformColumnTypes(Table.RenameColumns(out,{"Дата", "Числа"}),{"Числа", Int64.Type}) in ren
[/vba] Плюс в том, что в плане наличия внутренней таблицы соответствия запрос практически портабельный. Хотя, наверняка можно еще что-нибудь оптимизировать.Egyptian