Помогите, пожалуйста, с формулами Excel
К большому моему сожалению, LLM, в частности ChatGPT ещё абсолютно не способна к нормальным решениям в области работы с Excel/Google Sheet. Какие бы промпты я ни создавал, нейкронка предоставляет либо ошибочные варианты решения, либо путается в синтаксисе. Скармливание ошибок ни к чему результативному не приводит.
Я попытался разобраться сам при помощи экселевских док, но моих знаний в конечном итоге не хватило, поэтому прошу вашей помощи.
Суть задачи очень простая. Есть две таблицы в Google Sheets. Необходимо, чтобы первая таблица обращалась к информации во второй и на основе неё считала итоговую стоимость. Немного конкретных данных.
Первая таблица.
B:Страна (текстовый тип данных, это важно)
C:Тариф (текстовый)
D: Кол-во единиц товара (числовой)
E:Период (числовой)
F:Цена (числовой)
Вторая таблица.
A:Тариф (текстовый тип данных)
B:Страна (текстовый тип данных)
C:Оригинальная цена (числовой)
D: Цена продажи
Что нужно: чтобы в первой таблице, при указании типа услуги, тарифа, кол-во единиц и периода таблица сама смотрела во вторую, искала совпадения и автоматически подбивала итоговую стоимость.
Совпадения нужно искать во второй таблице по колонкам A (тарифы разные, от этого зависит стоимость), B (каждой стране присвоена своя цена), C (нужно брать оригинальную стоимость). И у меня почти получилось, но я нашёл крайне странное поведение.
Суть в том, что я использую importrange для связи двух таблиц и тут начинаются самые главные танцы с бубном. Я попытался отладить свои формулы. Для этого я попытался сравнить данные, если просто их указать без импортренджа. Результат сравнения был TRUE. И вот только если я использую импортрендж, сравнение возвращает FALSE, из-за чего, как я понимаю, у меня ничего и не работает. Если я правильно понял, то проблема в том, что импортрендж - это ссылка и разумеется ссылка на объект не будет равна самим данным, потому что типы отличаются. И я решил вместо двух таблиц использовать просто разные листы в рамках одной таблицы. Но результат почему-то оказался прежним, это ни на что не повлияло.
Как итог, я попытался использовать данную формулу:
=ARRAYFORMULA(ЕСЛИ( (B3:B <> "") * (C3:C <> ""); ОКРУГЛ( Ч(D3:D) * Ч(E3:E) / 30 * 0,8 * ИНДЕКС( 'Прейскурант'!C2:C; ПОИСКПОЗ(1; ('Прейскурант'!A2:A = C3:C) * ('Прейскурант'!B2:B = B3:B); 0 ) ); 2 ); ""))
Но, к сожалению, из-за разницы в типе данных (скорее всего) мне просто не возвращается нужный результат. Помогите, пожалуйста, добрый люди.
Щас ребята из POE подскачут, помогут.
Из EVE Online
Без оверлея тут не разобраться
Решение такой задачи денег стоит.
Я и не прошу её решить за меня и предоставить ответ. Хотя бы объяснить в чём я заблуждаюсь или подсказать, из-за чего происходит расхождение поиска, что приводит к невалидному результату.
Задача стоит именно эксель-книгу напердолить или просто получить результат?
Если второе, то перегоняем таблицы в powerbi датасет или просто сливаем в условный постгрес и работаем с ними уже по-людски.
Если первое, то добро пожаловать в волшебный мир пердолинга, ибо гугл щитс != эксель.
К сожалению, прейскурант находится именно в Google sheets, чтобы была возможность онлайн-учёта, так сказать. Поэтому и "пердолится" приходится именно с ним. Мне проще было бы даже логику на том же JS выкатить и создать с нуля какой-нибудь синглпейдж аппликейшн. По затраченному времени мб даже быстрее бы вышло.