関数の使用例|Index(_ ,max(filter(row(_) ,_複数条件_)))

関数の使用例|Index(_ ,max(filter(row(_) ,_複数条件_)))
Googleスプレッドシートで、「複数条件でデータを抽出する」場合の応用編です。複数条件で該当するものの中で一番下の行のデータを抽出します。

この関数が使用されている箇所

シート「銘柄とリスクの管理」の列Mから列Qのあたりで使用されています。シート「トレード記録」に入力されているデータから必要な情報を抽出するのが目的です。

関数の解説

まずは、実際に入力されている関数を見ていきましょう。

=iferror(index('トレード記録'!$M:$M,max(filter(row('トレード記録'!$G$2:$G),('トレード記録'!$G$2:$G="1u")+('トレード記録'!$G$2:$G="2u")+('トレード記録'!$G$2:$G="3u")+('トレード記録'!$G$2:$G="full"),'トレード記録'!$D$2:$D=$C7,'トレード記録'!$V$2:$V=""))),"")

これを分解して解説していきます。

=iferror(_処理A_ ,"")

iferror() では、エラーが発生した場合に返す値を指定することができます。この場合、処理Aがエラーだった場合は空白を返します。

index('トレード記録'!$M:$M ,_行の指定_)

index() は、指定した範囲内から、「指定した行、指定した列」のデータを返します。この場合は列を省略しているため、「指定した行の1列目」のデータを返します。

ここでは、範囲の指定を「$M:$M」として「M列のすべての行」としています。「index(_M列すべての行_ ,_行の指定_)」ということですね。

max(filter(row('トレード記録'!$G$2:$G) ,_複数条件_))

max() は、与えられたデータの「最大値」を返します。
filter() は、与えられた範囲の中で、「条件を満たすデータ」を返します。
row()は、与えられたデータの「"行" 番号」を返します。

filter() とrow() の組み合わせで「複数条件を満たすデータの行番号」を取得し、max() で取得した複数の行番号のなかで「最も大きい番号」を取得します。

つまり、複数の条件を満たすデータのなかで、一番下の行に入力されているデータの行番号を取得しているわけです。

その行番号が「index(_M列すべての行_ ,_行の指定_)」の「行の指定」に入ることで、「複数条件を満たす一番下の行のデータ」を取得することができます。

Back to Top

abbamboo

タカハシ / 7年目の兼業トレーダー

このブログの目的は、「学習の備忘録」と「アウトプットして理解を深めること」。「トレードで稼ぐために学んだこと」を徹底的に公開していきます。

元・日本料理の板前、現・金融畑のウェブ屋さん
保有資格:証券外務員1種、認定テクニカルアナリスト

更新のお知らせは、各SNS や LINE@ で。LINE@ だと1対1でお話することもできます!

>> このブログと著者についての詳細
>> 使っているツールの紹介

Lums Theory

Sorry... doesn't support your browser

To get the best possible experience using our site we recommend that you upgrade to a modern web browser. Lums Theoryではご利用中のブラウザサポートはしていません。
Internet Explorerのアップグレード行う、もしくはその他のブラウザを使用しての閲覧をお願いします。