Как посчитать пикеты + рамы
kotel1144
Дата: Суббота, 08.01.2022, 19:08 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация:
0
±
Замечаний:
0% ±
Здравствуйте. Суть такая есть пикеты в которых 1 пикет = 10м, счёт идет в рамах 1 пикет = 15 рам, шаг рам 0.67, например между 10 и 11 пикетом 10метров или 15 рам. Мне известны только пикеты и рамы. В таблицу я забиваю данные например пк10+12р в след строку пк 10+7р. При разнице должно получится пк0+5р, или если например отнять от пк10+12р, 37рам должно получится пк8+5р. Получается что при уменьшении начинаем считать с 15рам. Может ли ексель так считать?
Здравствуйте. Суть такая есть пикеты в которых 1 пикет = 10м, счёт идет в рамах 1 пикет = 15 рам, шаг рам 0.67, например между 10 и 11 пикетом 10метров или 15 рам. Мне известны только пикеты и рамы. В таблицу я забиваю данные например пк10+12р в след строку пк 10+7р. При разнице должно получится пк0+5р, или если например отнять от пк10+12р, 37рам должно получится пк8+5р. Получается что при уменьшении начинаем считать с 15рам. Может ли ексель так считать? kotel1144
Ответить
Сообщение Здравствуйте. Суть такая есть пикеты в которых 1 пикет = 10м, счёт идет в рамах 1 пикет = 15 рам, шаг рам 0.67, например между 10 и 11 пикетом 10метров или 15 рам. Мне известны только пикеты и рамы. В таблицу я забиваю данные например пк10+12р в след строку пк 10+7р. При разнице должно получится пк0+5р, или если например отнять от пк10+12р, 37рам должно получится пк8+5р. Получается что при уменьшении начинаем считать с 15рам. Может ли ексель так считать? Автор - kotel1144 Дата добавления - 08.01.2022 в 19:08
прохожий2019
Дата: Суббота, 08.01.2022, 23:45 |
Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1395
Репутация:
364
±
Замечаний:
0% ±
365 Beta Channel
Может ли ексель так считать?
в общем виде - может, но это гемор, конечно. покажите пример данных - бывают ли только пк? я бы сделал функцию рамы Код
=LAMBDA(x;ВЫБОР(1+ЕСЛИОШИБКА(ПОИСК("р";x)^0;0)+ЕСЛИОШИБКА(2*ПОИСК("пк";x)^0;0);0;--ПОДСТАВИТЬ(x;"р";"");15*ПОДСТАВИТЬ(x;"пк";"");ПОДСТАВИТЬ(ЛЕВСИМВ(x;ПОИСК("+";x)-1);"пк";"")*15+ПОДСТАВИТЬ(ПСТР(x;ПОИСК("+";x)+1;99);"р";"")))
и функцию пакетырамы Код
=LAMBDA(x;"пк"&ЦЕЛОЕ(x/15)&"+"&ОСТАТ(x;15)&"р")
тогда все лаконично выходит:Код
=пакетырамы(рамы(A3)-рамы(B3))
а иначе мракобесие вроде такого: Код
="пк"&ЦЕЛОЕ((ВЫБОР(1+ЕСЛИОШИБКА(ПОИСК("р";A3)^0;0)+ЕСЛИОШИБКА(2*ПОИСК("пк";A3)^0;0);0;--ПОДСТАВИТЬ(A3;"р";"");15*ПОДСТАВИТЬ(A3;"пк";"");ПОДСТАВИТЬ(ЛЕВСИМВ(A3;ПОИСК("+";A3)-1);"пк";"")*15+ПОДСТАВИТЬ(ПСТР(A3;ПОИСК("+";A3)+1;99);"р";""))-ВЫБОР(1+ЕСЛИОШИБКА(ПОИСК("р";B3)^0;0)+ЕСЛИОШИБКА(2*ПОИСК("пк";B3)^0;0);0;--ПОДСТАВИТЬ(B3;"р";"");15*ПОДСТАВИТЬ(B3;"пк";"");ПОДСТАВИТЬ(ЛЕВСИМВ(B3;ПОИСК("+";B3)-1);"пк";"")*15+ПОДСТАВИТЬ(ПСТР(B3;ПОИСК("+";B3)+1;99);"р";"")))/15)&"+"&ОСТАТ(ВЫБОР(1+ЕСЛИОШИБКА(ПОИСК("р";A3)^0;0)+ЕСЛИОШИБКА(2*ПОИСК("пк";A3)^0;0);0;--ПОДСТАВИТЬ(A3;"р";"");15*ПОДСТАВИТЬ(A3;"пк";"");ПОДСТАВИТЬ(ЛЕВСИМВ(A3;ПОИСК("+";A3)-1);"пк";"")*15+ПОДСТАВИТЬ(ПСТР(A3;ПОИСК("+";A3)+1;99);"р";""))-ВЫБОР(1+ЕСЛИОШИБКА(ПОИСК("р";B3)^0;0)+ЕСЛИОШИБКА(2*ПОИСК("пк";B3)^0;0);0;--ПОДСТАВИТЬ(B3;"р";"");15*ПОДСТАВИТЬ(B3;"пк";"");ПОДСТАВИТЬ(ЛЕВСИМВ(B3;ПОИСК("+";B3)-1);"пк";"")*15+ПОДСТАВИТЬ(ПСТР(B3;ПОИСК("+";B3)+1;99);"р";""));15)&"р"
Может ли ексель так считать?
в общем виде - может, но это гемор, конечно. покажите пример данных - бывают ли только пк? я бы сделал функцию рамы Код
=LAMBDA(x;ВЫБОР(1+ЕСЛИОШИБКА(ПОИСК("р";x)^0;0)+ЕСЛИОШИБКА(2*ПОИСК("пк";x)^0;0);0;--ПОДСТАВИТЬ(x;"р";"");15*ПОДСТАВИТЬ(x;"пк";"");ПОДСТАВИТЬ(ЛЕВСИМВ(x;ПОИСК("+";x)-1);"пк";"")*15+ПОДСТАВИТЬ(ПСТР(x;ПОИСК("+";x)+1;99);"р";"")))
и функцию пакетырамы Код
=LAMBDA(x;"пк"&ЦЕЛОЕ(x/15)&"+"&ОСТАТ(x;15)&"р")
тогда все лаконично выходит:Код
=пакетырамы(рамы(A3)-рамы(B3))
а иначе мракобесие вроде такого: Код
="пк"&ЦЕЛОЕ((ВЫБОР(1+ЕСЛИОШИБКА(ПОИСК("р";A3)^0;0)+ЕСЛИОШИБКА(2*ПОИСК("пк";A3)^0;0);0;--ПОДСТАВИТЬ(A3;"р";"");15*ПОДСТАВИТЬ(A3;"пк";"");ПОДСТАВИТЬ(ЛЕВСИМВ(A3;ПОИСК("+";A3)-1);"пк";"")*15+ПОДСТАВИТЬ(ПСТР(A3;ПОИСК("+";A3)+1;99);"р";""))-ВЫБОР(1+ЕСЛИОШИБКА(ПОИСК("р";B3)^0;0)+ЕСЛИОШИБКА(2*ПОИСК("пк";B3)^0;0);0;--ПОДСТАВИТЬ(B3;"р";"");15*ПОДСТАВИТЬ(B3;"пк";"");ПОДСТАВИТЬ(ЛЕВСИМВ(B3;ПОИСК("+";B3)-1);"пк";"")*15+ПОДСТАВИТЬ(ПСТР(B3;ПОИСК("+";B3)+1;99);"р";"")))/15)&"+"&ОСТАТ(ВЫБОР(1+ЕСЛИОШИБКА(ПОИСК("р";A3)^0;0)+ЕСЛИОШИБКА(2*ПОИСК("пк";A3)^0;0);0;--ПОДСТАВИТЬ(A3;"р";"");15*ПОДСТАВИТЬ(A3;"пк";"");ПОДСТАВИТЬ(ЛЕВСИМВ(A3;ПОИСК("+";A3)-1);"пк";"")*15+ПОДСТАВИТЬ(ПСТР(A3;ПОИСК("+";A3)+1;99);"р";""))-ВЫБОР(1+ЕСЛИОШИБКА(ПОИСК("р";B3)^0;0)+ЕСЛИОШИБКА(2*ПОИСК("пк";B3)^0;0);0;--ПОДСТАВИТЬ(B3;"р";"");15*ПОДСТАВИТЬ(B3;"пк";"");ПОДСТАВИТЬ(ЛЕВСИМВ(B3;ПОИСК("+";B3)-1);"пк";"")*15+ПОДСТАВИТЬ(ПСТР(B3;ПОИСК("+";B3)+1;99);"р";""));15)&"р"
прохожий2019
Сообщение отредактировал прохожий2019 - Воскресенье, 09.01.2022, 00:00
Ответить
Сообщение Может ли ексель так считать?
в общем виде - может, но это гемор, конечно. покажите пример данных - бывают ли только пк? я бы сделал функцию рамы Код
=LAMBDA(x;ВЫБОР(1+ЕСЛИОШИБКА(ПОИСК("р";x)^0;0)+ЕСЛИОШИБКА(2*ПОИСК("пк";x)^0;0);0;--ПОДСТАВИТЬ(x;"р";"");15*ПОДСТАВИТЬ(x;"пк";"");ПОДСТАВИТЬ(ЛЕВСИМВ(x;ПОИСК("+";x)-1);"пк";"")*15+ПОДСТАВИТЬ(ПСТР(x;ПОИСК("+";x)+1;99);"р";"")))
и функцию пакетырамы Код
=LAMBDA(x;"пк"&ЦЕЛОЕ(x/15)&"+"&ОСТАТ(x;15)&"р")
тогда все лаконично выходит:Код
=пакетырамы(рамы(A3)-рамы(B3))
а иначе мракобесие вроде такого: Код
="пк"&ЦЕЛОЕ((ВЫБОР(1+ЕСЛИОШИБКА(ПОИСК("р";A3)^0;0)+ЕСЛИОШИБКА(2*ПОИСК("пк";A3)^0;0);0;--ПОДСТАВИТЬ(A3;"р";"");15*ПОДСТАВИТЬ(A3;"пк";"");ПОДСТАВИТЬ(ЛЕВСИМВ(A3;ПОИСК("+";A3)-1);"пк";"")*15+ПОДСТАВИТЬ(ПСТР(A3;ПОИСК("+";A3)+1;99);"р";""))-ВЫБОР(1+ЕСЛИОШИБКА(ПОИСК("р";B3)^0;0)+ЕСЛИОШИБКА(2*ПОИСК("пк";B3)^0;0);0;--ПОДСТАВИТЬ(B3;"р";"");15*ПОДСТАВИТЬ(B3;"пк";"");ПОДСТАВИТЬ(ЛЕВСИМВ(B3;ПОИСК("+";B3)-1);"пк";"")*15+ПОДСТАВИТЬ(ПСТР(B3;ПОИСК("+";B3)+1;99);"р";"")))/15)&"+"&ОСТАТ(ВЫБОР(1+ЕСЛИОШИБКА(ПОИСК("р";A3)^0;0)+ЕСЛИОШИБКА(2*ПОИСК("пк";A3)^0;0);0;--ПОДСТАВИТЬ(A3;"р";"");15*ПОДСТАВИТЬ(A3;"пк";"");ПОДСТАВИТЬ(ЛЕВСИМВ(A3;ПОИСК("+";A3)-1);"пк";"")*15+ПОДСТАВИТЬ(ПСТР(A3;ПОИСК("+";A3)+1;99);"р";""))-ВЫБОР(1+ЕСЛИОШИБКА(ПОИСК("р";B3)^0;0)+ЕСЛИОШИБКА(2*ПОИСК("пк";B3)^0;0);0;--ПОДСТАВИТЬ(B3;"р";"");15*ПОДСТАВИТЬ(B3;"пк";"");ПОДСТАВИТЬ(ЛЕВСИМВ(B3;ПОИСК("+";B3)-1);"пк";"")*15+ПОДСТАВИТЬ(ПСТР(B3;ПОИСК("+";B3)+1;99);"р";""));15)&"р"
Автор - прохожий2019 Дата добавления - 08.01.2022 в 23:45
bmv98rus
Дата: Воскресенье, 09.01.2022, 12:47 |
Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4147
Репутация:
772
±
Замечаний:
0% ±
Excel 2013/2016
Мракобесие превратим в формулу для старых добрых функций :-)Код
=SUBSTITUTE(TEXT(SUM(IFERROR(MID(SUBSTITUTE(CHOOSE({1\2};A16;B16);{"+";"р"};REPT(" ";15));IFERROR(FIND({"пк";"+"};CHOOSE({1\2};A16;B16))+{2;1};1);15)/{1;15}*{1\-1};));"пк0""+""0/15");"/15";"p")
и это для случая когда в несмежных диапазонах данные , там еще корочеКод
=SUBSTITUTE(TEXT(SUM(IFERROR(MID(SUBSTITUTE(A12:B12;{"+";"р"};REPT(" ";15));IFERROR(FIND({"п";"+"};A12:B12)+{2;1};1);15)/{1;15}*{1\-1};));"пк0\+0/15");"/15";"р")
Мракобесие превратим в формулу для старых добрых функций :-)Код
=SUBSTITUTE(TEXT(SUM(IFERROR(MID(SUBSTITUTE(CHOOSE({1\2};A16;B16);{"+";"р"};REPT(" ";15));IFERROR(FIND({"пк";"+"};CHOOSE({1\2};A16;B16))+{2;1};1);15)/{1;15}*{1\-1};));"пк0""+""0/15");"/15";"p")
и это для случая когда в несмежных диапазонах данные , там еще корочеКод
=SUBSTITUTE(TEXT(SUM(IFERROR(MID(SUBSTITUTE(A12:B12;{"+";"р"};REPT(" ";15));IFERROR(FIND({"п";"+"};A12:B12)+{2;1};1);15)/{1;15}*{1\-1};));"пк0\+0/15");"/15";"р")
bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Воскресенье, 09.01.2022, 19:06
Ответить
Сообщение Мракобесие превратим в формулу для старых добрых функций :-)Код
=SUBSTITUTE(TEXT(SUM(IFERROR(MID(SUBSTITUTE(CHOOSE({1\2};A16;B16);{"+";"р"};REPT(" ";15));IFERROR(FIND({"пк";"+"};CHOOSE({1\2};A16;B16))+{2;1};1);15)/{1;15}*{1\-1};));"пк0""+""0/15");"/15";"p")
и это для случая когда в несмежных диапазонах данные , там еще корочеКод
=SUBSTITUTE(TEXT(SUM(IFERROR(MID(SUBSTITUTE(A12:B12;{"+";"р"};REPT(" ";15));IFERROR(FIND({"п";"+"};A12:B12)+{2;1};1);15)/{1;15}*{1\-1};));"пк0\+0/15");"/15";"р")
Автор - bmv98rus Дата добавления - 09.01.2022 в 12:47
kotel1144
Дата: Вторник, 11.01.2022, 20:30 |
Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация:
0
±
Замечаний:
0% ±
Маги, магистры лучшие, ребят вы профи, благодарности нет предела, огромнейшее спасибо очень помогли.
Маги, магистры лучшие, ребят вы профи, благодарности нет предела, огромнейшее спасибо очень помогли. kotel1144
Ответить
Сообщение Маги, магистры лучшие, ребят вы профи, благодарности нет предела, огромнейшее спасибо очень помогли. Автор - kotel1144 Дата добавления - 11.01.2022 в 20:30