Функция для поиска определенного номера, а затем для дальнейшего поиска префикса

У меня есть огромное количество данных для обработки, в которых 4 точки со связанным префиксом нужно вычесть друг из друга. Данные состоят из идентификатора и значения x

Пример ID = 290,12, 290,03, 290,06, 290,09, 300,12, 300,03, 300,06, 300,09, 301,12, 301,03, 301,06, 301,09 (назовем префикс "номер звонка" и суффикс время на часах) Значение X = любое числовое значение для каждого назначенного идентификатора

Что я надеюсь сделать, так это найти первое число перед точкой, то есть 300, а затем вычесть значение 300,06-300,12 в одной ячейке, а в другой ячейке 300,03-300,09.

(Вычитание — это всего лишь пример, то, как мне нужно манипулировать числами, немного сложнее, но я справился с этим)

Это мои настоящие данные, и то, что мне нужно создать, находится справа от необработанных данных. На данный момент делаю это вручную для каждого комплекта "колец"

Кто-нибудь знает, как подойти к этому? Я думаю vlookup, но я не очень хорошо разбираюсь в Excel.

Новый Excel

Я попробовал vlookup, но я не знаю, как построить формулу, и у меня закончились идеи.

=IFERROR(DROP(REDUCE(0,A1:A13,LAMBDA(a,b,VSTACK(a,IFERROR(TE‌​XTSPLIT(b,"."),"")))‌​),1),"") это создаст диапазон разлива номера звонка в первом столбце и значение x во втором. Вы можете легко использовать это для (V) поиска вашего значения.
P.b 19.11.2022 20:21

Любое обучение очень ценится, но, как бы я ни старался, я действительно не понимаю этого. Даже не уверен, в какую ячейку (ячейки) он должен идти.

user3047214 21.11.2022 10:38
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
2
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Редактировать:

Я обнаружил, что REDUCE в этом случае не требуется, поэтому его можно сократить до:

=SQRT(SUM(((INDEX(B:D,XMATCH(I3+0.09,A:A),SEQUENCE(1,3))-INDEX(B:D,XMATCH(I3+0.03,A:A),SEQUENCE(1,3)))^2)))

Вы можете изменить +0.09 и +0.03 в соответствии со своими потребностями и можете ссылаться на них с помощью LET() для удобства обслуживания:

=LET(id,I3, 
     _id1,0.09,
     _id2,0.03,
SQRT(SUM(((INDEX(B:D,XMATCH(id+_id1,A:A),SEQUENCE(1,3))-INDEX(B:D,XMATCH(id+_id2,A:A),SEQUENCE(1,3)))^2))))

Предыдущий ответ:

=LET(
 id,I3,
_id1,0.09,
_id2,0.03,
SQRT(
     REDUCE(0, SEQUENCE(1,3),
     LAMBDA(x, y,
     x+((INDEX(B:D,XMATCH(id+_id1,A:A),y)
     -INDEX(B:D,XMATCH(id+_id2,A:A),y))
     ^2)))))

Эта формула ищет совпадающее значение значения идентификатора I3 + _id1 за вычетом совпадающего значения значения идентификатора + _id2 для столбцов от B до D и добавляет ^2 результатов для каждого столбца. Затем он вычисляет его квадратный корень.

Вы можете изменить _id1 и _id2 по своему усмотрению.

Чтобы сразу рассчитать дельту (как показано), вы можете использовать:

=LET(id,I3,
     _id1,0.09,
     _id2,0.03,
     _id3,0.12,
     _id4,0.06,
     x,SQRT(SUM((INDEX(B:D,XMATCH(id+_id1,A:A),SEQUENCE(1,3))-INDEX(B:D,XMATCH(id+_id2,A:A),SEQUENCE(1,3)))^2)),
     y,SQRT(SUM((INDEX(B:D,XMATCH(id+_id3,A:A),SEQUENCE(1,3))-INDEX(B:D,XMATCH(id+_id4,A:A),SEQUENCE(1,3)))^2)),
(x-y)*1000)

У вас может быть столбец уникальных значений целых чисел и новый столбец, в котором вы ссылаетесь на эти значения как id и перетаскиваете формулу вниз, чтобы получить результат строки за строкой.

В другом столбце вы можете ссылаться на эти столбцы и сортировать по второму столбцу с помощью SORTBY().

Спасибо, а что такое r в этом уравнении?

user3047214 28.11.2022 09:13

r должен ссылаться на диапазон, указанный в функции BYROW; ids в этом случае. Переименование r в BYROW/LAMBDA делает r построчной ссылкой на ids.

P.b 28.11.2022 10:51

Другие вопросы по теме