Доброго времени суток! Как автоматически прописать единицы измерений в ячейке эксель? Пыталась делать через формат ячеек, но много условий. 1000 = 1 л 1500 = 1 л 500 мл 500 = 500 мл 0=0
Доброго времени суток! Как автоматически прописать единицы измерений в ячейке эксель? Пыталась делать через формат ячеек, но много условий. 1000 = 1 л 1500 = 1 л 500 мл 500 = 500 мл 0=0Mari3594
let from = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], f=(x)=>[ a = List.Select(List.Zip({{Number.IntegerDivide(x,1000),Number.Mod(x,1000)},{"л","мл"}}),(i)=>i{0}>0), b = Text.Combine(List.Transform(List.Combine(a),Text.From)," ")][b], to = Table.AddColumn(from,"format",(r)=>f(r[Column1])) in to
[/vba]
хотя я бы просто ограничился форматом [=0]0;[<1000]0_-\мл;#_-л ###_-\мл
let from = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], f=(x)=>[ a = List.Select(List.Zip({{Number.IntegerDivide(x,1000),Number.Mod(x,1000)},{"л","мл"}}),(i)=>i{0}>0), b = Text.Combine(List.Transform(List.Combine(a),Text.From)," ")][b], to = Table.AddColumn(from,"format",(r)=>f(r[Column1])) in to
[/vba]
хотя я бы просто ограничился форматом [=0]0;[<1000]0_-\мл;#_-л ###_-\млпрохожий2019
язык форматов не менялся с основания Excel - как вы использовали формат? куда вводили? что за ошибка?
Не правильно объясняю. Формат работает. Можно сделать так чтобы 2 л 000 мл выглядело как 2 л ? Я пытаюсь по аналогии сделать второй формат для килограммов и граммов. Меняю только буковки и не работает.
язык форматов не менялся с основания Excel - как вы использовали формат? куда вводили? что за ошибка?
Не правильно объясняю. Формат работает. Можно сделать так чтобы 2 л 000 мл выглядело как 2 л ? Я пытаюсь по аналогии сделать второй формат для килограммов и граммов. Меняю только буковки и не работает.Mari3594
Private Sub Worksheet_Change(ByVal Target As Range) x = Target.Column 'определяем столбец, в который вводиться значение If x > 1 Then Exit Sub 'если это не 1й столбец (A) выходим из макроса a = Target.Value 'значение ячейки y = IsNumeric(a) 'в ячейке число? If y = False Then Exit Sub 'не число - выходим из макроса b = a Mod 1000 'остаток от деления на 1000 c = a - b 'разница u = "" 'литры - пока пусто v = "" 'мл - пока пусто If a = 0 Then 'если 0, тогда: Target.NumberFormat = "General" 'общий формат Else 'если не 0, тогда: If c > 0 Then u = Int(a / 1000) & " л " 'непустые литры If b > 0 Then v = b & " мл" 'не пустые мл d = Application.Trim("""" & u & v & """") 'соединяем литры с мл Target.NumberFormat = d 'присвоим формат ячейке End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) x = Target.Column 'определяем столбец, в который вводиться значение If x > 1 Then Exit Sub 'если это не 1й столбец (A) выходим из макроса a = Target.Value 'значение ячейки y = IsNumeric(a) 'в ячейке число? If y = False Then Exit Sub 'не число - выходим из макроса b = a Mod 1000 'остаток от деления на 1000 c = a - b 'разница u = "" 'литры - пока пусто v = "" 'мл - пока пусто If a = 0 Then 'если 0, тогда: Target.NumberFormat = "General" 'общий формат Else 'если не 0, тогда: If c > 0 Then u = Int(a / 1000) & " л " 'непустые литры If b > 0 Then v = b & " мл" 'не пустые мл d = Application.Trim("""" & u & v & """") 'соединяем литры с мл Target.NumberFormat = d 'присвоим формат ячейке End If End Sub