1 つのワークシートを読み取り、別のワークシートにデータをロードしますが、参照としてだけではありません

1 つのワークシートを読み取り、別のワークシートにデータをロードしますが、参照としてだけではありません

私は、データベースからダンプされた生データである機器資産と属性のリストを持っています。機器の状態 (実行中、スタンバイ中など) やオイル レベルなどの属性の中には、ヘッダーやプレース ホルダーなども別のレコード行として含まれています。これが、私がデータに関して作業しているものです。

このデータを使ってやりたいことは、他の条件の中でも部分的なテキスト行に基づいて選択し、その情報を別のシートに入力することです。以下は、チェックしているセルに含まれる内容のサンプルです。

"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\BU-1002\P-1866A"

私がチェックするのは、そのテキスト行の「DE-OILING D」の部分です。これには何百ものレコードが含まれる可能性があり、その部分的なテキストのみを含むレコードを取得することで、必要のない他の何百ものレコードを取得しなくなります。

今、私は関数でこれが可能になることを期待しています。ステートメントを使用して、そのデータ リストにあるこれらのレコードの数をカウントできることはわかっていますCOUNTSIF(この数式は "=COUNTIF('DBASE SHEET'!B:B,A4)" で機能します)。したがって、検出できることはわかっていますが、条件付き引数として "De-Oiling D" テキストをチェックして他のデータ フィールドを取得し、その基準に基づいて他のデータを参照する方法がどうしてもわかりません。

index()、、および を試しましたindirect()が、vlookup()これらはまったく異なるものか、あるいはこれらの関数の組み合わせです。いずれにしても、数式が機能しないようです。

ここで、もう 1 つの問題があります。新しいワークシートに引き込みたいレコードを検出したら、新しいデータのリストを作成できるようにしたいのですが、その中に大量の空白行を含めないようにしたいのです。

|セル区切りとして使用してサンプルを記録します。

|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | NULL            |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | RUNNING STATUS  |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | OIL LEVEL       |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | SUCTION PRESSURE|
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1470 | NULL            |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1470 | RUNNING STATUS  |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1470 | OIL LEVEL       |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1570 | NULL            |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1570 | RUNNING STATUS  |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1570 | OIL LEVEL       |

出力として欲しいのは、スペースなどを入れずに次のものです。

|DE-OILING C | P-1370 | RUNNING STATUS  |
|DE-OILING C | P-1370 | OIL LEVEL       |
|DE-OILING C | P-1370 | SUCTION PRESSURE|
|DE-OILING D | P-1470 | RUNNING STATUS  |
|DE-OILING D | P-1470 | OIL LEVEL       |
|DE-OILING D | P-1570 | RUNNING STATUS  |
|DE-OILING D | P-1570 | OIL LEVEL       |

答え1

COUNTIFS() ステートメントを検討するのは正しいことです。数値を比較するときと同じようにテキスト文字列を扱い、> および < 修飾子を使用して、各文字列が探しているセクションで始まるかどうかを確認します。

=COUNTIFS('DBASE SHEET'!B:B,">"&A4,'DBASE SHEET'!B:B,"<"&A5)

A4にはあなたの

"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D"

A5には

"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING E"

A5に自動入力する動的な数式が必要な場合は、

=LEFT(A4,LEN(A4)-1)&CHAR(CODE(RIGHT(A4,1))+1)

関連情報