209 похожих чатов

Коллеги, добрый день! Подскажите как в PQ разделить числа и

буквы? Например надо из этого 1ч12м сделать 72. в тоже время встречаются 45м, а надо 45. Значения могут быть отрицательными и знак надо сохранить.
написал вот такое:
[a=List.Transform(Text.Split(Text.Remove([REMAINING],{"м"}),"ч"),Number.From),
b = if Text.Start([REMAINING],1)="-" then -1 else 1,
c = Number.Abs(a{0}),
d=b*c*60+b*a{1}
][d]

Но вот при 45м выходит ошибка. Как обработчик ошибок напсать? или может по другому вообще решить эту задачу. Заранее спасибо за ответ!

17 ответов

55 просмотров

if Text.Contains(..., "ч") then... else...

[a=List.Transform(Text.Split(Text.Remove("-45м",{"м"}),"ч"),Number.From), x = List.LastN({0,0}&a, 2), d= x{0}*60 + x{1} ][d]

Mikhail Muzykin
if Text.Contains(..., "ч") then... else...

f=(x)=>[a=Number.From(Text.BeforeDelimiter(x,"ч"))*60+Number.From(Text.BetweenDelimiters(x,"ч","м"), b=Number.From(Text.BeforeDelimiter(x,"м")), c=if Text.Contains(x,"ч") then a else b][c]

добавил знак, а то некорректно суммировалось [a=List.Transform(List.RemoveMatchingItems(Text.SplitAny("-1ч45м","мч"), {""}),Number.From), x = List.LastN({0,0}&a, 2), s = if Number.Sign(x{0})=0 then 1 else Number.Sign(x{0}), d= x{0}*60 + x{1}*s ][d]

Alim- Автор вопроса
Mikhail Muzykin
f=(x)=>[a=Number.From(Text.BeforeDelimiter(x,"ч"))...

Вот это решение мне более понятно. Но выдает ошибку

Alim- Автор вопроса
Сергей
добавил знак, а то некорректно суммировалось [a=Li...

x = List.LastN({0,0}&a, 2) что это строка делает не пойму

Alim
x = List.LastN({0,0}&a, 2) что это строка делает н...

список из 2 значений, если у вас только 45м, то будет {0,45} если 1ч45м - будет {1,45}

Alim- Автор вопроса
Сергей
добавил знак, а то некорректно суммировалось [a=Li...

все работает отлично! Но разобраться не могу Text.SplitAny - объединяем в список по разделителям "мч" = "-1 45" List.RemoveMatchingItems - удаляем пробелы ={ -1,45}

Alim
все работает отлично! Но разобраться не могу Text....

Text.SplitAny - делаем из текста список по любому из разделителей м и\или ч List.RemoveMatchingItems - удаляем пустые элементы списка, т.к. 15м разделится на {15,""} List.Transform текст в числа

Alim- Автор вопроса
Alim- Автор вопроса
Сергей
добавил знак, а то некорректно суммировалось [a=Li...

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

Alim- Автор вопроса
Alim
Сергей, будьте добры подскажите, как оставить толь...

a=List.Transform(List.RemoveMatchingItems(Text.SplitAny([REMAINING],"мч"), {""}),Number.From), x = List.LastN({0,0}&a, 2), s = if Number.Sign(x{0})=0 then 1 else Number.Sign(x{0}), d = x{0}*60 + x{1}*s, r = if Number.Sign(d) = -1 then d else 0 ][r]) Сделал, работает! нормально решение?

Alim
a=List.Transform(List.RemoveMatchingItems(Text.Spl...

лучше проверку до всех вычислений вынести, чтоб меньше гонять память if Text.StartsWith([REMAINING], "-") then ....

Alim- Автор вопроса
Сергей
лучше проверку до всех вычислений вынести, чтоб ме...

Сергей, не могу додуматься как корректно вставить все это дело. Вставил, но на положительных значениях ошибка. Не могу понять как включить в общую цепочку: [a = if Text.StartsWith([REMAINING], "-") then List.Transform(List.RemoveMatchingItems(Text.SplitAny([REMAINING],"мч"), {""}),Number.From) else 0, x = List.LastN({0,0}&a, 2), s = if Number.Sign(x{0})=0 then 1 else Number.Sign(x{0}), d = x{0}*60 + x{1}*s ][d]

огласите весь список пжлста) if Text.StartsWith([REMAINING], "-") then [h= Text.Split([REMAINING], "ч"), x = if List.Count(h)>1 then List.FirstN(List.RemoveNulls({Number.From(h{0})} & {Number.From(Text.Split(h{1}, "м"){0}),0}),2) else {0} & {Number.From(Text.Split(h{0}, "м"){0})}, d= -(x{0}*60 + x{1}) ][d] else 0

Сергей
screenshot

на картинке, кстати, нормально распределение. Можно выделить "Ящик с усами"

Похожие вопросы

Обсуждают сегодня

@Benzenoid can you tell me the easiest, and safest way to bu.y HEX now?
Živa Žena
20
This is a question from my wife who make a fortune with memes 😂😂 About the Migration and Tokens: 1. How will the old tokens be migrated to the new $LGCYX network? What is th...
🍿 °anton°
2
What is the Dex situation? Agora team started with the Pnetwork for their dex which helped them both with integration. It’s completed but as you can see from the Pnetwork ann...
Ben
1
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
@lozuk how do I get my phex copies of my ehex from a atomic wallet, to move to my rabby?
Justfrontin 👀
11
Hello, Is iExec also part of the "inception program" or another one ? Would it be a name to qualified the nature of the relationship between iExec and Nvidia? And does Secret ...
Ñïķøłäś
8
Ready for some fun AND a chance to win TKO Tokens? Join us for exciting minigames in our Telegram group! 🕒 Don’t miss out—games start on today 25 October 2024, at 8 PM! Ge...
Milkyway | Tokocrypto
255
any reference of this implementation?
BitBuddha
29
Also, why can’t the community have a vote/ say when it comes to initiatives like buybacks. Isn’t the point of crypto decentralisation? Don’t we deserve input as long term supp...
👨🏽‍🦰
13
Hi guys, any problem with Pulsebrige? Trying to transfer from wETH to ETH. First it tells me to connect my metamask "through mobile app" not desktop. Then I did and confirmed ...
Snowflakecrypto
13
Карта сайта