私は、データベースからダンプされた生データである機器資産と属性のリストを持っています。機器の状態 (実行中、スタンバイ中など) やオイル レベルなどの属性の中には、ヘッダーやプレース ホルダーなども別のレコード行として含まれています。これが、私がデータに関して作業しているものです。
このデータを使ってやりたいことは、他の条件の中でも部分的なテキスト行に基づいて選択し、その情報を別のシートに入力することです。以下は、チェックしているセルに含まれる内容のサンプルです。
"\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)