2

как я могу добавить содержимое ячейки A в ячейку B, если ячейка B пуста в MS Excel 2010?

Моя ситуация в деталях:

  • Столбец A (столбец с некоторыми пустыми и некоторыми непустыми значениями): AD
  • Столбец B (здесь нет пустых значений): I

Теперь мне нужно Excel, чтобы заполнить столбец AD значениями из столбца I, если значение в столбце AD отсутствует. В противном случае исходное значение из столбца AD должно остаться.

Примечание. Все столбцы содержат текстовые данные (без цифр, валюты и т.д.).

Мой подход:

= ЕСЛИ ((AD3)= ""; I3; AD3)

Но это работает не так, как ожидалось: просто выдает ошибку круговой ссылки и заполняет столбец AD3 значением "0", несмотря на любые другие значения.

У кого-нибудь есть идея? Спасибо.

1 ответ1

1

Вы получаете циклическую ссылку, потому что ячейка содержит только одну часть информации. В настоящее время, используя в качестве примера строку 3, AD3 содержит значение (скажем, "Hello"). Как только вы попытаетесь вставить функцию, AD3 теперь содержит функцию, и "Hello" полностью исчезает. Теперь он будет пытаться бесконечно вызывать функцию, ссылающуюся на AD3.

Для этого лучше использовать вспомогательный столбец, если вы хотите использовать формулу, в противном случае вам придется жестко ее кодировать. Лично я бы добавил новый столбец AE, скрыл столбец AD и использовал формулу, которую вы использовали в AE.

Другие варианты, которые у вас есть, - запустить макрос VBA, например:

Sub FillBlanksFromI()
    Dim j
    For j = 1 To FindLastRow("AD")
        If IsEmpty(Range("AD" & j).Value) Then
            Range("AD" & j).Value = Range("I" & j).Value
        End If
    Next j
End Sub

Function FindLastRow(col As String) As Long

    Dim lastRow As Long
    lastRow = ActiveSheet.Range(col & Rows.Count).End(xlUp).Row
    FindLastRow = lastRow

End Function

... который будет заполнять любые пустые поля с их значением от I. Это не будет автоматически обновляться, и будет работать только один раз.

В качестве альтернативы вам нужно жестко закодировать каждую функцию в каждой ячейке, чтобы она была либо значением, либо =I3

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .