Страницы: 1 2 3 След.
RSS
Сколько названий изменилось на строго заданное?
 
Прошу помощи в решении.
Есть 2 таблицы с данными на разных листах - таблица №1 и таблица №2. Таблица №1 - это исходные данные, таблица №2 - это изменённые данные. У данных есть id, он не меняется, меняются только названия. В приведённой файле обе таблицы на одном листе, но в рабочем файле они будут на разных.

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

Если говорить о простом и конкретном примере в приложенном файле - сколько апельсинов изменило название на груши. Правильный ответ: 2. Эту задачу можно решить, через дополнительный столбец. Но нужно, чтобы решение было в отдельной ячейке, в данном примере в ячейке N2.
Надеюсь на вашу помощью, спасибо.  
 
Код
=СУММПРОИЗВ((F3:F10=I3:I10)*(G3:G10<>J3:J10)*(J3:J10="груша"))
F1 творит чудеса
 
Данная формула считает неверно. В данном примере идёт подсчёт всего груш. А нужно, чтобы считались только груши, полученные из апельсинов.
 
формула массива:
=СУММ(ЕСЛИ((G3:G10="апельсин")*(J3:J10="груша");1;0))
 
Нет привязки к id, т.е. если id меняется, то результат остаётся тот же. Да, в условиях не было. Как посоветуете изменить формулу, чтобы была привязка к id?
 
Что еще в рукаве прячете?
подсказка
 
Цитата
Максим написал:
Как посоветуете изменить формулу, чтобы была привязка к id?
Думаю, добавить условие в формулу Максима Зеленского из поста №2.
Код
=СУММПРОИЗВ((F3:F10=I3:I10)*(G3:G10<>J3:J10)*(J3:J10="груша")*(G3:G10="апельсин"))
Изменено: memo - 04.07.2020 00:11:49
 
Цитата
vikttur написал:
Что еще в рукаве прячете? подсказка
:D  прошу извинить, это не умышленно))) просто забыл написать об этом
 
memo,да, благодарю, работает!
 
Пока ждал ответы, доработал решение Настя_Nastya:
Код
=СУММ(ЕСЛИ((F3:F10=I3:I10)*(G3:G10="апельсин")*(J3:J10="груша");1;0))

Всем спасибо за соучастность!
 
тогда уж
=СУММ((F3:F10=I3:I10)*(G3:G10="апельсин")*(J3:J10="груша"))
По вопросам из тем форума, личку не читаю.
 
Возникла проблемка... Если количество строк в таблицах разное, то появляется ошибка... Как решить не знаю...
Изменено: Максим - 04.07.2020 13:39:25
 
одну траспонировать а это {"апельсин"\"яблоко"} разнести на два условия.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
одну траспонировать а это {"апельсин"\"яблоко"} разнести на два условия
Не очень хорошо понимаю, для чего необходимо одну из таблиц транспонировать?
 
Цитата
Максим написал:
для чего необходимо одну из таблиц транспонировать?
что б работало.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
что б работало.
:D Это понятно, я хотел прояснить логику))) Если вас не затруднит, можете показать на конкретном примере?
Изменено: Максим - 04.07.2020 15:14:42
 
Цитата
Максим написал:
на конкретном примере?
А где тот самый конкретный пример? Предлагаете косолапому его набить?
 
Цитата
Андрей VG написал:
А где тот самый конкретный пример? Предлагаете косолапому его набить?
 
при не равенстве диапазонов необходимо работать в крос таблице, следовательно столбец одной из таблиц надо развернуть в строку. получим матрицу ( в вашем случае 12x11)
Соответственно там где ID равны будет 1, там где нет 0.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
при не равенстве диапазонов необходимо работать в крос таблице, следовательно столбец одной из таблиц надо развернуть в строку. получим матрицу ( в вашем случае 12x11)Соответственно там где ID равны будет 1, там где нет 0.
Апельсины и яблоки - это модель. Количество строк в рабочей таблице составляет несколько десятков тысяч.  
 
модель, которая не показывает масштаб бедствия - это не модель. Это путь к неоптимальному решению.

В результате то что нужно получить? Ибо начали за здравие а заканчиваем  тем, что хороним решение. ибо марица 10к на 10к= тормоз
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
В результате то что нужно получить? Ибо начали за здравие а заканчиваем  тем, что хороним решение. ибо марица 10к на 10к= тормоз
дык я про то же)) понимаю, что матрица 10к х 10к - это не очень оптимальный вариант. Готов уже рассмотреть решение с добавлением доп.столбца
 
Цитата
Максим написал:
Готов уже рассмотреть решение с добавлением доп.столбца
А может Power Query? Только формулировку всё же бы почётче иметь
 
Цитата
Максим написал:
Нужно понять сколько названий изменилось на строго заданное, но из находящихся в таблицах.
не совсем соответвует последнему вопосу
=SUMPRODUCT(COUNTIFS(Новая_Т[id];Старая_Т[id];Новая_Т[Имя];Старая_Т[Имя];Новая_Т[название];CHOOSE({1\2\1\2};"груша";"киви"))*(Старая_Т[Имя]=P8)*(Старая_Т[название]=CHOOSE({1\1\2\2};"яблоко";"апельсин")))
или
=SUMPRODUCT(COUNTIFS(Новая_Т[id];Старая_Т[id];Новая_Т[Имя];Старая_Т[Имя];Новая_Т[название];{"груша""киви""груша""киви"})*(Старая_Т[Имя]=P8)*(Старая_Т[название]={"яблоко""яблоко""апельсин""апельсин"}))
Изменено: БМВ - 04.07.2020 17:55:34
По вопросам из тем форума, личку не читаю.
 
БМВ,благодарю! Быстро посмотрел - вроде работает. Ещё потестирую, но решение отличное!

Цитата
Андрей VG написал: А может Power Query? Только формулировку всё же бы почётче иметь
Андрей VG,интересное решение, но данный вариант не подойдёт
 
Цитата
Максим написал:
данный вариант не подойдёт
Позволю себе поинтересоваться, что послужило причиной такого вывода?
 
=СУММ(ЕСЛИОШИБКА((ВПР(Новая_Т[id];ЕСЛИ(Старая_Т[название]="яблоко";Старая_Т);3;0)<>Новая_Т[название])*(Новая_Т[название]="киви");0))
Изменено: Максим Зеленский - 04.07.2020 21:26:40
F1 творит чудеса
 
Максим Зеленский, Максим, ну даже не переводя на ENG не то, ибо вернулись к одинаковому диапазону строк.
По вопросам из тем форума, личку не читаю.
 
БМВ, отнюдь. Файл приложил.

Нам и не надо тут 2 диапазона, все работает. Нам надо узнать, сколько ID поменяли свое состояние из старого (яблок) в новое (киви). Соответственно, у нас в рассмотрении только те ID, которые есть в новой таблице. Любые ID, которые есть в старой, но нет в новой, нам неинтересны. Поэтому вторая размерность или матрица тут избыточны.
F1 творит чудеса
 
Цитата
Максим Зеленский написал:
БМВ , отнюдь. Файл приложил.
Максим Зеленский, в скачанном файле не хватает переменной имени:

=СУММ(СУММПРОИЗВ((Старая_Т[id]=Новая_Т[id])*((Старая_Т[Имя]=#ССЫЛКА!)*(Новая_Т[Имя]=#ССЫЛКА!))*(Старая_Т[название]<>Новая_Т[название])*((Новая_Т[название]="груша")+(Новая_Т[название]="киви"))*(Старая_Т[название]={"апельсин";"яблоко"})))

если подставлять "Иван", тогда формула не считает.
Страницы: 1 2 3 След.
Наверх