У меня есть основной рабочий лист, который содержит данные, которые я хочу связать с другим «сводным» листом, используя поиск.
Однако некоторые ячейки, данные которых я хочу включить в сводную таблицу, объединяются в две или более смежные строки. Для ясности, «основной» столбец A, который я использую в своей формуле для определения целевой строки, не содержит объединенных ячеек, но столбец, из которого я хочу вернуть значение, содержит.
я пытался VLOOKUP
а также INDEX+MATCH
, Проблема в том, что данные возвращаются только для ключа первой строки, а остальные возвращают ноль (как если бы ячейка в целевом столбце была пустой, где фактически она объединена).
Я пробовал обходные пути, например, с помощью IF
операторы, чтобы попытаться найти верхний ряд объединенной ячейки. Тем не менее, они не работают должным образом, если порядок значений в сводной таблице отличается от порядка в основной таблице, а также является грязным.
Можно ли это сделать?
Ответы:
Я не думаю, что есть какой-либо простой способ сделать это с помощью существующих формул Excel. Проблема двоякая. Во-первых, в AFAIK нет функции Excel, которая сообщала бы, является ли ячейка частью объединенного диапазона. Во-вторых, значение, отображаемое в объединенной области, находится фактически только в первой ячейке объединенного диапазона.
Если вы хотите использовать VBA для создания пользовательской функции, это можно сделать довольно легко с помощью комбинации
Match
функция и тот факт, что объекты Range знают, являются ли они частью объединенного диапазона.источник
Вот еще один способ (с использованием VBA) узнать, является ли ячейка частью объединенной области. Я иногда использую эту функцию (и некоторые другие производные от этой):
Надеюсь, это поможет.
источник
Объединенные ячейки просто форматируют. Проблема правильно указывает на ячейку, которая имеет значение. Одним из подходов будет вспомогательный столбец, в котором Excel сможет найти то, что ему нужно (либо фактическое значение, либо указатель на него). Это гораздо практичнее, если каждая строка связана с фактическим значением или «объединенным значением». Если некоторые строки не могут иметь значения, создание дорожной карты в столбце помощника усложняется.
Но для случая, когда каждая строка связана с фактическим или объединенным значением, простое решение будет примерно таким. Скажем, целью VLOOKUP является столбец A, а столбец B содержит объединенные значения. Создайте вспомогательный столбец справа; Я буду использовать столбец C для примера. Предположим, строка 1 является первой строкой данных, поэтому B1 всегда будет иметь значение. В столбце помощника C1 будет просто:
Ячейка C2 будет:
Скопируйте это вниз по столбцу. В этом случае вспомогательный столбец будет содержать значение для каждой строки, и VLOOKUP может извлечь из этого столбца.
Мне неизвестна обычная (по крайней мере нативная) функция, которая может возвращать, является ли ячейка частью объединенного диапазона. Таким образом, если могут быть ячейки без действительного или объединенного значения, вероятно, потребуется одно из решений VBA.
источник