Получение значений из Excel Присоединяющихся Столбцов

голоса
4

Я делаю hlookupсо значением , которое охватывает несколько столбцов. Мои данные похожа на это:

      A      B      C      D 
  ---------------------------  
1|       Col1          Col2
2|     x      y      z      w
3|
4|

В строках 3 и 4 (A3, B3, C3, D3 и т.д.), я хотел бы поставить формулы, которые будут делать HLOOKUP где-то в книге. Хитрость заключается в том, я хотел бы, чтобы посмотреть «Col1» для столбцов А и В и «Col2» для столбцов C и D. «Col1» в A1, но на самом деле A1 и B1 объединены. Когда я ссылку A1, «Col1» появляется, но когда я ссылаться B1, возвращаемое значение является пустым.

Есть идеи?

Задан 15/01/2009 в 16:22
источник пользователем
На других языках...                            


6 ответов

голоса
0

Клетки B1 и D2 содержат никаких значений, только A1 и C1 есть что-то внутри них.

Таким образом, вы просто должны убедиться, что ваши формулы в столбцах A и B оба относятся к А1 как значение поиска, и что ваши формулы в столбцах C и D оба относятся к C1 для значения поиска.

Ответил 15/01/2009 в 16:39
источник пользователем

голоса
7

Чтобы получить доступ к и ярлыкам «COL1» «Col2», вы можете использовать следующее:

= ИНДЕКС ($ 1: $ 1,1, КОЛОНКА () - MOD (COLUMN () - 1,2))

Примечание: Это предполагает, что вы группируя одинаковое количество клеток. Если бы это было три ячейки, вы бы просто изменить номер последнего в формуле до 3, и так далее.

Edit: Вот как это работает:

ИНДЕКС ($ 1: $ 1,1, х) возвращает значение ячейки в строке 1, столбец х. Если таблица не на самом деле находится в верхнем левом углу листа, вы можете изменить это фактический диапазон, который включает в себя все ваши слившихся этикетки. В этом случае, было бы: ИНДЕКС ($ A $ 1: $ D $ 1,1, х)

COLUMN () возвращает номер столбца текущей ячейки (1 в колонке А, 2 в столбце B, и т.д.)

MOD (COLUMN () - 1, х) возвращает смещение от текущего столбца к столбцу, который содержит правильную метку

Ответил 15/01/2009 в 16:43
источник пользователем

голоса
4

Я построил простую функцию в VBA, что позволит решить эту проблему:

Function mergedText(rngMergedCell As Range)

    If rngMergedCell.MergeCells = True Then
        mergedText = rngMergedCell.MergeArea(1, 1)
    Else
        mergedText = rngMergedCell
    End If

End Function

Если ячейка является объединенной ячейкой, функция возвращает значение в первом элементе объединенной ячейки - это где объединенная ячейка сохраняет свое значение

Ответил 22/07/2009 в 14:31
источник пользователем

голоса
11

Вот другое решение, которое также может работать, когда слившиеся клетки разной ширины, позвольте мне проиллюстрировать на примере:

  1. Открыть свежий Excel, слияние B1, C1, D1 ,
  2. Введите Col1 в объединенной ячейке
  3. В В2 , типа формулы = B1 , а в С2 = С1 , в D2 = D1
  4. Вы должны увидеть B2 , чтобы быть Col1 в то время как С2, D2 , являются 0
  5. В B3 введите формулу = A3 , скопируйте его
  6. Щелкните правой кнопкой мыши объединенную ячейку B1: D1 , выберите «вставить специальные -> формулы»
  7. Вы должны увидеть слит сот -
  8. Введите Col1 в объединенной ячейке
  9. Теперь вы должны увидеть все B2, C2, D2 быть Col1 , то есть теперь вы можете ссылаться на объединенной ячейки , как вы ожидаете , что это будет.

Если вы можете множественные объединенные ячейки, каждые из разной ширины, просто вставить формулу их все на одном дыхании.

Причина это работает из - за выбором дизайна perculier корпорации Майкрософт. Кажется , что при вставке формул в объединенных ячейках, каждая из основной клетка получает формулу (в отличии от этого , если вы вводите значение, только верхняя левая клетка получает его) Таким образом , вы можете использовать его в своих интересах и вставить формулу , которые ссылаются клетка рядом с ним, а затем перезаписать верхнюю левую ячейку со значением вы хотите, то каждая клетка , лежащая в основе объединенной ячейки будет иметь это значение.

Ответил 12/06/2014 в 16:52
источник пользователем

голоса
1

Я понимаю, что я опоздал на эту тему, но я нашел очень простой ответ на этот вопрос.

Если, например, ваша метка слита 4 столбцов a1: d1, и если вы ссылаетесь b1, вы вернетесь «». Для динамически находить правильные метки использовать эту FX в новой таблице:

=if(OriginalTable!B1="",ThisTable!A1,OriginalTable!B1)

Я уверен, вы поймете, что это захватит диапазоны e1: h1 и т.д., как вы обведите.

Вот и все. Надеюсь, что это поможет кому-то.

Ответил 28/09/2015 в 15:36
источник пользователем

голоса
0

Более общий вариант предложения e.James заключается в следующем:

={INDEX($A$1:A1, 1, MAX(NOT(ISBLANK($A$1:A1))*COLUMN($A$1:A1)-COLUMN($A$1)+1))}

Это зависит от того, что слившиеся клетки являются пустыми за исключением первого (если вы не в таком случае, как предложение Мартина).

Примечание: фигурные скобки есть, чтобы отметить формулу массива (не вводите их, просто нажмите Alt + возврат проверить формулу в ячейке).

Ответил 22/12/2016 в 09:34
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more