Excel 2007のこれら2つの数式を正しく記述する方法、またはさらに良い組み合わせ方

Excel 2007のこれら2つの数式を正しく記述する方法、またはさらに良い組み合わせ方

数式が 2 つあります。この質問の例として、基本的に CD データベースであるワークブックがあると仮定します。このワークブックには、予想される通常の情報がすべて含まれています。このワークブックの名前は ですAlbum.xls

また、 という別のワークブックがありData.xls、これには多数のワークシートが含まれています。各ワークシートは から異なるデータを取得しますAlbum.xls

ご存知のように、音楽 CD にはアルバムごとにディスクの数が異なります。ディスクが 1 枚だけのものもあれば、2 枚、3 枚などもあります。

ではAlbum.xls、各 CD の情報はすべて行全体にわたって含まれています (行ごとに 1 つの CD)。ディスク番号情報は列 F にあります。データは常に数字であるため、ディスク 1 (アルバム/タイトル内) は数字 1 で表され、ディスク 2 は数字 2 で表され、最大 8 つのディスクまで続きます。

Data.xlsタイトルごとのディスク数を取得しようとしているワークシートがあります。たとえば、特定のアルバムにはディスクが何枚あるかなどです。

私はこれを実行するために以下の 2 つの式を使用していますが、不必要に冗長で、あるいは間違った方法で実行していると思うので、もっと良い方法を提案できる人はいないでしょうか。

私のディスクカウントワークシートではData.xls...

列Aの各セルには、

=IF(OR([Album.xls]Track!$F$2=1), "Disc 1", IF(OR([Album.xls]Track!$F$2=2), "Disc 2", ""))

下方向の各セルごとに、数式内のセル参照は 1 ずつ進みます。したがって、A1セル参照では$F$2A2その では$F$3、というようになります。

この数式は の F 列を調べAlbum.xls、F 列の各セルについて、数値 1 が見つかった場合は を表示しDisc 1、数値 2 が見つかった場合は を表示するDisc 2、というように動作します。

列BIの各セルには

=INDEX($A$2:$A$400, MATCH(0,INDEX(COUNTIF($B$1:B4,$A$2:$A$20),0,0),0))

これは、列 A の最初の数式の結果を調べて一意の値のみを返します。したがって、CD アルバムに 3 枚のディスクがある場合、上位 3 つのセルには次の内容が表示されます。

Disc 1  
Disc 2  
Disc 3 

ディスクが 5 枚ある場合は次のように表示されます。

Disc 1  
Disc 2
Disc 3
Disc 4
Disc 5

等々...

長々と書いてしまい申し訳ありません。私の初心者ぶりが露呈してしまい、苦労しているので、あなたから学べたらと思っています。

答え1

列 A では以下を使用できます。

="Disc "&[CATraxx_Album.xls]Track!$F2

これにより、「Disc X」が出力されます。ここで、X は [CATraxx_Album.xls]Track!$F2 の値です。

アンパサンド (&) 演算子は Excel の数式で文字列を連結するので、 AB を出力します。これは、(C1 と C2 に名前が含まれる場合="A"&"B"など) 多くのものを連結するために使用できる非常に便利な演算子です。="hello "&C1&", nice to meet you! My name is "&C2&"."

列 A の数式で、F と 2 の間にあるドル記号も削除したことに注意してください。つまり、この数式を下にドラッグすると、F の数字が増加します。これが必要な動作だと思います (A1 は F2 を参照し、A2 は F3 を参照する、などとおっしゃっています)。

列 B の機能については述べられていますが、何が問題なのか、または出力をどのように変更したいのかについては述べられていません。出力について何を変えたいのかを教えていただければ、その点についても回答を充実させることができます。

関連情報