Если ячейка содержит значение, тогда «Заголовок столбца»

149
Sideshow_Gary

Ищу помощь

 A B C D E F 1 Food Petrol Rent Wages 2 **Food** 12 3 **Petrol** 35 4 **Rent** 120 5 **Wages** 300 

У меня есть формула, которая копирует значения в ячейки C2: F5 и далее, но мне трудно придумать формулу, которая копирует заголовок столбца «Еда / бензин / аренда» в столбец B, если в соответствующей ячейке есть значение в столбце

Так что, если C2 имеет значение, то B2 = C1. Если F5 имеет значение, то B5 = "Заработная плата".

в настоящее время у меня есть 38 столбцов и около 1000 строк, это может быть сложно сделать все вручную

заранее спасибо

1
Каждая строка значений (C2: F5) должна иметь только 1 ячейку со значением в ней. ничто не должно быть «Еда» И «Бензин» Sideshow_Gary 2 года назад 0
Значение ячейки всегда будет числом? Может ли быть строка без значения? fixer1234 2 года назад 0
значение всегда будет числом да, каждая строка должна иметь ровно одно значение, Sideshow_Gary 2 года назад 0
Спасибо за вашу помощь, я боюсь, что дал вам неполную информацию по моей проблеме, я перефразировал проблему здесь https://superuser.com/questions/1300454/office-calc-matching-column-header-to-cell с более подробной информацией , Спасибо. Sideshow_Gary 2 года назад 0

1 ответ на вопрос

1
fixer1234

Есть несколько способов сделать это. Вы описываете наличие 38 столбцов, поэтому некоторая форма поиска - самый простой подход. Вы можете сделать это с помощью INDEX и MATCH:

enter image description here

Формула в В2:

=INDEX($C$1:$F$1,MATCH(0,ISBLANK(C2:F2),0)) 

Обратите внимание на фигурные скобки вокруг формулы на изображении. Это формула массива, поэтому вам нужно вводить ее, используя Ctrl+ Shift+ Enterвместо просто Enter. И, конечно же, вам нужно настроить диапазоны в соответствии с вашими данными.

Как это устроено:

MATCH ищет первую непустую запись, в этом случае ISBLANK вернется False, и OpenOffice будет отображаться как 0( Trueбудет отображаться как 1). MATCH возвращает позицию столбца в диапазоне, где было найдено совпадение. 0Параметр в конце ищет точное совпадение.

INDEX возвращает значение из первой строки в соответствующей позиции столбца, найденной с помощью MATCH.

Вы можете скопировать и вставить формулу вниз в столбец B после ее ввода.

ОБНОВИТЬ:

В комментариях вы указали, что в вашей реальной таблице нет пустых ячеек, в которых нет чисел. Скорее, они содержат формулы, которые отображают пустую ячейку. В этом случае ISBLANK не распознает его как пустое. Мы можем справиться с этим, просто проверяя числовое значение и ища первое истинное условие. Таким образом, формула B2 будет иметь вид:

=INDEX($C$1:$F$1,MATCH(1,ISNUMBER(C2:F2),0)) 

Опять же, это формула массива, поэтому вам нужно вводить ее, используя Ctrl+ Shift+ Enterвместо просто Enter. Я только что проверил, что эта формула работает в этом примере, когда «пустые» ячейки на самом деле не пустые.

Спасибо за вашу помощь, но я боюсь, что я не был достаточно полон информации, которую я дал вам, Sideshow_Gary 2 года назад 0
Работал ли этот ответ для примера в этом вопросе, и затем у вас возникла проблема с переводом его на ваш фактический лист? Чтобы диагностировать проблему, сначала убедитесь, что вы правильно реализовали упрощенный пример. Это покажет, заключается ли проблема в реализации формулы или в том, что в рабочей таблице скрыта сложность, которую формула не обрабатывает. fixer1234 2 года назад 0
Я воссоздал простую электронную таблицу, и формула работает. Большое спасибо, однако ячейки в диапазоне поиска содержат формулу, поэтому ISBLANK дает ложные срабатывания, Sideshow_Gary 2 года назад 0

Похожие вопросы