0

2つの列があり、最初の列にはオブジェクトの名前があり、2番目の列にはオブジェクトが属します。一人一人に割り当てたものを記載した新しいシートが欲しいです。ここに例があります:

dog F
cat F
bell S
whistle 
bird F

つまり、フレッドには犬、猫、鳥がいます。スコットにはベルがあります。そして、誰も彼らのページに笛を持っていません。簡単なIF()を実行すると、Fredのページでは次のようになります。

TOP OF ROW
dog
cat


bird

そしてスコットのページは次のようになります

TOP OF ROW


bell

しかし、私はフレッドを次のように見せたい

TOP OF ROW
dog
cat
bird

とスコットは同じです。

私の現在の考え方は=VLOOKUP($C$1,Items!A2:C1000,3)、データがどの行にあるかを示すためにDの非表示列で使用することです(ここで、アイテムの列Cは行番号の非表示列であり、C1は検索パラメーター(SまたはF))=IFERROR(CELL("contents",INDIRECT(ADDRESS($D2,2,1,TRUE,"Items"))),"")、しかし、検索配列の行インデックスを1+最後に見つかったアイテムに変更する以外は(方法がわかりません)、次のアイテムの検索を続行する方法がわかりません。私はC++とC#を知っていますが、これまでVBAでコーディングしたことがなく、MSDNに大きく依存しており、ExcelAPI専用のMSDNセクションはありません。

4

2 に答える 2

1

Excel の関数を使用してこれを行う良い方法があります。

基本的に、実行中のcountifを作成する必要があります

したがって、C2 では、=COUNTIF($B$2:$B2,"F")明らかに「F」が別のセルへの参照になることもあります。この数式を範囲内に入力すると、範囲が拡張されます。例えば。C3ではそれは言うでしょう=COUNTIF($B$2:$B3,"F")

これにより、例の列 C に現在の合計が表示されます。これは次のことを意味します。

犬F1

猫F2

ベルS2

ホイッスル 2

鳥 F 3

vlookup は常に最初に見つかった一致に一致するため、2 が 3 つあるという事実は問題ではありません。

この技術には、さまざまな用途があります。また、データによっては、これをデータの左側に配置する方が簡単な場合があるため、VLOOKUP が簡単になります。

于 2009-05-28T08:01:47.943 に答える
1

VBA コードを使用せずに探しているリストを取得する 1 つの方法は、高度なフィルターを利用することです。

シート 1 では、入力リストは次のように入力されます。

代替テキスト

sheet2 にフィルター基準を入力します (この基準は、Owned by 列に F が含まれていることを意味します)

代替テキスト

そして最後にシート3で、このように高度なフィルター関数を呼び出します

代替テキスト

必ず別の場所にコピーを選択してください

リスト範囲としてsheet1入力リストを選択します

基準範囲として sheet2 フィルター基準を選択します

出力範囲としてシート3のどこかを選択します(エントリへのコピー)

Excel VBA プログラミングのルートをたどりたい場合は、最初のステップとして、Excel のマクロ レコーダー (ツール - マクロ - マクロの記録) を試してみることをお勧めします。

幸運を!

于 2009-04-26T08:42:56.950 に答える