データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
こんにちは。
最初に、ご希望の B列の表示の確認ですが、図1のような表示で良いでしょうか?。
図1では、色々なパターンを検証するため、提示されている表の A列の文字列を少し変更しています。
・図1
以下は、図1のような表示で良い場合の数式の具体例です。
条件が複雑なため、図2のように、C列と D列を数式を入れた作業列として使い、B列に入れた数式と連携させてご希望の文字列を表示させるようにしています。
・図2:数式の結果が表示されている状態です。
図2の C列と D列は図3のように「非表示」にしておいた方が見やすいかと思います。「非表示」にしておいても数式の結果に影響はありません。
※「非表示」にする方法:C列と D列を列ごと選択しておき、右クリックから「非表示」を選んでください。
・図3:C列と D列を「非表示」にした状態です。
<数式例>
※いずれも図2の各セルに入れる数式になります。
- 数式1:C1セルに入れる数式です。
=IF(A1="〇",1,"") - 数式2:D1セルに入れる数式です。
=IF(A1="×",1,"") - 数式3:C2セルに入れる数式です。
=IF((A1<>A2)*(A2="〇"),ROW(C2),"") - 数式4:D2セルに入れる数式です。
=IF((A1<>A2)*(A2="×"),ROW(D2),"") - 数式5:B2セルに入れる数式です。
=IF((MAX(C$1:C2)=0)+(MAX(D$1:D2)=0),"",IF(MAX(C$1:C2)>MAX(D$1:D2),IF((INDIRECT("B"&MAX(IF(B$1:B1<>"",ROW(B$1:B1),1)))<>"買"),"買",""),IF((INDIRECT("B"&MAX(IF(B$1:B1<>"",ROW(B$1:B1),1)))<>"売"),"売","")))
※長い数式なので、変な箇所で自動的に改行されているかもしれませんが全部で 1行の数式です。
※この数式は、スピルが有効になっている最新版の Excel( Microsoft365 の Excel、Excel2021 など)以外の Excel では、数式の入力後 に Ctrl+Shift+Enter キー押下で確定して配列数式にする必要があります。
※配列数式になると、数式全体が自動的に { } で囲まれますので、必ずこれを確認してください。
数式の動作概要については長い文章になるかと思いますので省略します。ご希望があれば書いてみたいとは思いますが・・・。
尚、B1セルには何も入れないでください。
全ての数式を入れ終わったら、B2セル、C2セル、D2セルを選択し、これを必要なだけ下方向(行方向)にコピーしてください。
今回の数式の場合は、多めにコピーしておいても問題ありません。
図2では、見えてはいませんが、300行目までコピーしています。
尚、数式をコピーした後は、行の削除とか挿入とかは行わないでください。数式のセル参照位置が変化して誤動作します。
A列の文字列の追加や削除、書き換えだけでしたら問題ありません。
Excel2019 は持ち合わせていませんので、下記の組み合わせで動作確認しています。
・Windows11 と Excel2021
・Windows10 と Excel2016
Excel2019 でも問題なく動作するかと思いますので、よろしければ、お試しになってみてください。
ご参考になれば幸いです。