2011-11-12 15 views
1

複数のワークシートを使用して複数のプロパティの支払いと支払いスケジュールを要約するExcelファイルがあります。Excel - 複数のワークシートにわたってテキストを使用する

最初のシートがすべての要約であり、後続のシートが異なるプロパティを詳述するように設定されています。私は最初のシートにテキストを戻したいというコラムを(説明のためだけに)持っています。

私が知っているのは、複数のワークシートにまたがってテキストを扱うのが好きではないので、以下のコードは私のために1つのエントリを作成するためにうまくいきました。後続のシートの同じセルに常に表示されます。

=IF(COUNTA(Sheet1:Sheet5!D15)=0,"", IF(COUNTA(Sheet1:Sheet5!D15)=1, (Sheet1!D15&Sheet2!D15&Sheet3!D15&Sheet4!D15&Sheet5!D15), "--> Multiple Entries")) 

しかし、私は後続のシートに2つの同一のエントリを入れる必要がある状況に出くわしました。

|シートブレイクとして

"" | "有料#1" | "" | ""

"有料#1" "有料#1" | "" | ""

"" | "有料#2" | "有料#1" | ""

ケース#2は、複数の同一のエントリを持つが、異なる#3の場所を強調表示する必要がある奇妙なものです(今度は複数のエントリがあれば十分です)。現在、両方のケースが強​​調表示されています。

本当にどこから始めるべきかわかりませんが、テキストや提案を扱う3Dリファレンス(一致する行に沿ったもの)が見つかりませんか?

いつものおかげで、私は本当にすべての助けに感謝します。

答えて

0

1つの方法は、必要な文字列を返すUDFを作成することです。残念ながら、UDFパラメータは3D範囲をサポートしていないため、回避する必要があります。

あなたの質問に基づいて、要約シートを除くすべてのシートで同じセルを考慮する必要があります。これに基づいて、このUDFは、式が置かれているシートを除くすべてのシート内の同じセルの連結を返します。あなたはそれをあなたが望むように他のものに戻すように適応させることができます。

メソッドをデモするのは簡単ですが、> 1セルを参照する、または別のシート/ブックのセルを参照するなど、エラーの場合を処理する必要があります。

Function MergeSheets(r As Range) As Variant 
    Dim a As String, s As String 
    Dim sh As Worksheet 
    Application.Volatile 

    a = r.Address 
    For Each sh In r.Worksheet.Parent.Worksheets 
     If sh.Name <> r.Worksheet.Name Then 
      s = s & sh.Range(a).Value 
     End If 
    Next 
    MergeSheets = s 
End Function 
関連する問題