Excel 2010: как ссылаться на определенное поле, используя определенное имя столбца и номер строки?

Я использую Excel 2010 и создаю рабочую книгу, чтобы определить детали о товарах в магазине (включая категорию, цену, аксессуары). Я также хочу определить сведения о категориях по умолчанию, которые будут использоваться, если конкретные сведения о продукте оставлены пустыми.

Я настроил три листа: Продукты, Категория по умолчанию и Рассчитано. Столбцы - это информация о продукте / категории, и у каждого элемента / категории есть свой ряд. Я также хотел бы максимально использовать именованные столбцы для удобства чтения. Имя столбца, начинающееся с P, - это подробности о продукте, а имя, начинающееся с D, - из листа CategoryDefault.

Поля в Calculated выглядят примерно так:

=IF(Products!G2="",
INDEX(DPRICE, MATCH(Products!A2, DCAT, 0)),
Products!G2)

где DPRICE - именованный столбец для цены по умолчанию, а DCAT - имя категории для листа CategoryDefaults.

Формула означает следующее: если столбец G "Номер продукта 2" не заполнен, найдите значение "Продукт 2" столбца "А" на листе "Категория по умолчанию" и верните значение "DefaultPrice". В противном случае вернуть определенную цену.

Пока все это работает нормально. Я хотел бы сделать еще один шаг вперед: в предыдущем примере "Товары!G2" относится к столбцу цен для продукта в строке 2. Я хотел бы сделать формулу более удобочитаемой, заменив ссылку на столбец "G" на именованную ссылка на столбец, а именно "ЦЕНА". Я сделал бы то же самое со ссылкой на Продукты!A2, вызвав столбец "PCAT" (категория, к которой относится продукт)

Окончательная формула будет выглядеть примерно так:

=IF(Products!PPRICE:2="",
INDEX(DPRICE, MATCH(Products!PCAT:2, DCAT, 0)),
Products!PPRICE:2)

Я просто не могу заставить это работать. Я пробовал "Применить имена..." безрезультатно, без двоеточий и $ безрезультатно. Кто-нибудь делал это раньше?

1 ответ

Я обнаружил, что INDEX(PPRICE, 2) вернет значение второй строки в столбце PPRICE. Весь фрагмент кода будет выглядеть так:

=IF(INDEX(PPRICE, 2)="",
INDEX(DPRICE, MATCH(Products!A2, DCAT, 0)),
INDEX(PPRICE, 2))

Однако это будет абсолютное значение, а не относительное значение, и если вы скопируете эту формулу в другие строки, она все равно будет указывать на строку 2. Поэтому это не будет хорошей идеей для больших наборов данных.

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