2017-11-03 7 views
1

Excelの製品には数少ない新しい機能があります。Excel:正規表現ではなく文字列としてテキストを読む

私は式を使用しています:

=COUNTIFS('salesreport'!$A$1:$A$1048576,'SalesNumbers'!$A1) 

SALESREPORTシートは、カラム内の製品名とデータが含まれ、SalesNumbersシートはA列と前記式中の製品名のリストが含まれています2番目の列に表示されます。

ここで、いくつかの製品には異なるバリエーションがあり、名前には*が付いています。 「製品A *」、「製品A *」。 *はExcelによって次のテキストとして解釈されるため、「製品A *」のカウンタには大きなバリアントが含まれます。

外部からのデータを受け取って以来、テンプレートにコピー/貼り付けする必要がある将来のレポートのために*を取り除くのは困難です。

問題を簡単に解決するには、明らかに大きなバリアントの数を差し引くことです。私がそれを持っている問題は、数式はもはやすべての製品で一貫しておらず、私のそばの誰かがテンプレートで作業すると問題を引き起こす可能性があるということです。

ExcelがA列の名前を正規表現ではなく文字列として読み取らせる方法はありますか?

ありがとうございます!

Ascani0

答えて

0

することは、私は、あなたが使用することができますこれを正しく理解していた場合:

=SUMPRODUCT(--(salesreport!$A:$A=SalesNumbers!$A1))

編集2 SUMPRODUCTは、強力な、多くの用途を見つけ、かなり便利な配列数式です。ここでは、特定のCOUNTIFのようなものを実行するために使用します。

  • SALESREPORT $ A:!!$のA = SalesNumbers $ A1一部のテスト平等

  • それは{TRUE、FALSE、TRUE .... FALSE}

  • のブール配列を生成し、

    この結果は、数値データを必要とするSUMPRODUCTに直接渡すことはできません。したがって、数値強制を実現するには、+0または* 1などの方法を使用して二重単項式( - )を適用することもできます。

編集そして、あなたはCOUNTIFSを使用する場合、あなたは以下のようにそれを使用することができます:

=COUNTIFS(salesreport!$A:$A,SUBSTITUTE(SalesNumbers!$A1,"*","~*"))

をここにチルダ(〜)エスケープ文字として作業を行い、アスタリスクまで確認することができます(*)をリテラルの意味で使用します。

+0

ありがとうございます!それはまさに私が探していたものです。 – Ascani0

+0

こんにちは@ Ascani0、Web上でたくさんのSUMPRODUCTを読むことができます。私はvbaexpressのサブフォーラムを読むことをお勧めします。特にBob Philips aka xldによって書かれたスティッキーポスト。 http://www.vbaexpress.com/forum/forumdisplay.php?98-SUMPRODUCT-And-Other-Array-Functions –

関連する問題