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. Поэтому это не будет хорошей идеей для больших наборов данных.