1

次のようなテーブルで構造化されたデータがあります。

既存のテーブル.

スプレッドシートに別のタブがあり、重複するカテゴリ エントリを削除し、データを次のように連結したいと考えています。

新しいテーブル

マクロや Visual Basic ではなく、関数を使用してこれを作成する必要があります。重複するカテゴリ エントリを削除する関数は既に作成しました。次に、これらの一意のカテゴリをそれぞれ取得し、その背後にデータを追加する方法を理解する必要があります。何か案は?

4

1 に答える 1

1

Sheet1最初の画像が2 番目の画像から取得されたと仮定すると、次Sheet2のようになります。に少なくとも 1 つの計算列を追加し、必要にSheet1応じて 2 つの計算行をに追加する必要がありますSheet2

  1. の各行を一意に識別しSheet1ます。A数式を含む新しい列を=B3&COUNTIF($B$3:B3,B3)追加しA3て入力します。first1in A3first2inなどがありますA4
  2. 上の列の各ブロックを識別しますSheet26数式を含む新しい行を=COUNTIF($B$2:B2,B2)追加し、横にB6塗りつぶします。値は になります1,1,1,2,2,2,3,3,3。必要に応じてこれらを手動で入力できますが、スケーリングは簡単ではありません。
  3. の各データ項目Sheet1の列を計算し、 の列に入れますSheet2。数式で新しい行7を追加し、横に塗りつぶします。値は になります。の各セルについて、カテゴリのどのインスタンスがあり、データ変数がどの列にあるのかがわかります。Sheet2=MATCH(B2,Sheet1!$A$2:$E$2,0)3,4,5,3,4,5,3,4,5Sheet2
  4. データ テーブル内のデータ列VLOOKUPを検索して返すために使用します。で、セルをに設定し、上下に塗りつぶします。first13Sheet2B3=VLOOKUP($A3&B$6,Sheet1!$A$2:$E$8,B$7,FALSE)
  5. 多くの#N/Aエラーが発生します (例: cell E4)。新しいバージョンの Excel を使用している場合は、 を使用IFERROR()してこれをエスケープできます。それ以外の場合は、手順 4 の式=IF(ISNULL(<formula>), "", <formula>)where is を使用します。<formula>

要約すると:

  • ソース内の各行に対して、一意で連続する計算可能な行 ID を作成します。
  • その順序のどのインスタンスが宛先の各列で使用されているかを判別します。これは、前の手順で形成された行 ID を決定するために、カテゴリの最後に追加されます。
  • 宛先の各列のデータがどの列に含まれているかを判別します。
  • 計算された行 ID を持つ行を検索し、このデータ項目に関連する列を見つけます。
  • 結果を適切にフォーマットします。
于 2012-04-05T07:26:05.563 に答える