この関数が使用されている箇所
シート「銘柄とリスクの管理」の列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列すべての行_ ,_行の指定_)」の「行の指定」に入ることで、「複数条件を満たす一番下の行のデータ」を取得することができます。
タカハシ / 7年目の兼業トレーダー
このブログの目的は、「学習の備忘録」と「アウトプットして理解を深めること」。「トレードで稼ぐために学んだこと」を徹底的に公開していきます。
元・日本料理の板前、現・金融畑のウェブ屋さん
保有資格:証券外務員1種、認定テクニカルアナリスト
更新のお知らせは、各SNS や LINE@ で。LINE@ だと1対1でお話することもできます!
>> このブログと著者についての詳細
>> 使っているツールの紹介