2016-07-21 13 views
1

複数の列にわたって「不明な」値を検索する方法を見つけようとしています。存在する場合、値が表示されるすべてのヘッダー列を列Bの各行の1つのセルに戻したいと考えています。Excel:複数の列にわたる値を検索し、ヘッダー列を返します。

たとえば、2行目(ヘッダー行の下の最初の行)行2のみの列Fから列Yに「不明」と表示されたすべての列名を戻し、列名をB2に戻すようにします。私はすべての9064行に対してこのプロセスを繰り返す必要があります。

私はExcel 2010を使用しています。マッチインデックスを検索しましたが、やりたいことをする方法を見つけることができませんでした。複数の列にわたって値を探し、その行に値が表示される各列ヘッダーを返し、すべての列ヘッダーを1つのセルに入れる方法はありますか?

Data View

+0

_不明」私は回数は欲しいが、 『_と_『の値は、その行の中に表示されるすべての列ヘッダーを返し、列のすべてを置く』と表示されます』 1つのセルにヘッダーが矛盾しているようです...結果の明示的な例を教えてください。 – EBH

+0

私は貧弱な言葉で訂正しました。 Unknownが各行に存在するすべての列名を返したいと思います。だから私のイメージ "データビュー"では、例えば、私はB2がInstall_Method_CD Manuf_Cd Coating_Cd Wall_Thickness Join_Method_Cdなどと言うのはUnknownがそれらの列にあるためです。 – elagarde

答えて

0

ここでカスタム関数です。通常のモジュール(Altキー+ F11 >>挿入>>モジュール>>コピー/ペースト>> Altキー+ Q)での最初の場所に次のコードを...

Function AConcat(a As Variant, Optional Sep As String = "") As String 
' Harlan Grove, Mar 2002 

    Dim Y As Variant 

    If TypeOf a Is Range Then 
     For Each Y In a.Cells 
      AConcat = AConcat & Y.Value & Sep 
     Next Y 
    ElseIf IsArray(a) Then 
     For Each Y In a 
      AConcat = AConcat & Y & Sep 
     Next Y 
    Else 
     AConcat = AConcat & a & Sep 
    End If 

    AConcat = Left(AConcat, Len(AConcat) - Len(Sep)) 

End Function 

はその後に確認して、AA2に次の式を入力します。 CONTROL + SHIFT + ENTER、およびダウンコピー:

=SUBSTITUTE(AConcat(IF(LEFT(F2:Y2,3)="Unk",", "&$F$1:$Y$1,"")),", ","",1) 
+0

それはすごくうまくいった。私はちょうど "Unk"としての価値があることに気づいています。そして私は早くそれを見ないことをお詫びします。それは "Unk"で何かを拾うだろう簡単な修正はありますか?いくつかのフィールドがユーザーによって埋められていますので、スペルが間違っていたり、「Unk」や「Unknown」でないだけではありません。私は配列にワイルドカードを追加しようとしましたが、うまくいきませんでした。助言がありますか? – elagarde

+0

さて、 "Unk"で始まるセルを検索するように式を編集しました。 – Domenic

+0

作品は完成です!どうもありがとうございます! – elagarde

関連する問題