Excel でハイブリッド データの範囲から最高数値を見つける

Excel でハイブリッド データの範囲から最高数値を見つける

図のように、6 つの英数字の行があります。各行の最も高い 3 つの数値を決定し、それらの値に関連付けられた文字を正しい順序 (降順) で表示する数式が必要です。たとえば、行 1 では、R が行内で最も高く、次に E、S の順であるため、答えは RES になります。一致するものがある場合 (上記のように)、最初に表示されるものが優先されます。私は Excel の基本的なユーザーですが、これに困惑しています。ソリューションの要素は実行できますが、組み合わせようとするとうまくいきません。ご協力に感謝します。

ここに画像の説明を入力してください

答え1

ここに画像の説明を入力してください

使い方:

ソースデータは範囲内ですA2:F3

  • セルにこの数式を記述して、B6ソースデータからアルファベットを分割し、

      =LEFT(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)
    
  • ソースデータから数値を分割するには、セルにこの数式を入力しB7右に曲がり、次に下へ。

     =VALUE(RIGHT(A2,LEN(A2)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))+1))
    
  • セルにB10この配列数式を記入し、そして押してF2仕上げCtrl+Shift+Enter、充填します

    {=LARGE(B7:G7,{1,2,3})}
    
  • この数式をセルに入力してB13くださいそれから

       =IFERROR(INDEX(B$6:$G$6,MATCH(B10,B7:$G7,0)),"")
    
  • 最後に、セルにB16次の数式を書いて入力します

=CONCATENATE(B13,C13,D13)

必要に応じて数式のセルの差異を調整します。

答え2

データ「R35」が にあると仮定しますA1

する

H1  --->  =VALUE(RIGHT(A1,LEN(A1)-1))

までドラッグしL1、その後

N1  --->  =IF(COUNTIF($H1:$L1,H1)=1,H1,H1+0.5)
O1  --->  =IF(COUNTIF($H1:$L1,I1)=1,I1,I1+0.4)
P1  --->  =IF(COUNTIF($H1:$L1,J1)=1,J1,J1+0.3)
Q1  --->  =IF(COUNTIF($H1:$L1,K1)=1,K1,K1+0.2)
R1  --->  =IF(COUNTIF($H1:$L1,L1)=1,L1,L1+0.1)

それから

T1  --->  =RANK(N1,$N1:$R1,0)

までドラッグしX1、その後

Z1  --->  =INDEX($A1:$F1,MATCH(1,$T1:$X1,0))
AA1  --->  =INDEX($A1:$F1,MATCH(2,$T1:$X1,0))
AB1  --->  =INDEX($A1:$F1,MATCH(3,$T1:$X1,0))

それから

AD1  --->  =LEFT(Z1)&LEFT(AA1)&LEFT(AB1)

最後に、選択しH1:AD1てドラッグしますAD6

AD 列が探しているものであるはずです。列を非表示にしたり、別のシートで実行して見た目をシンプルにすることもできます。

(式の理解や実行で)行き詰まったら、ぜひ共有してください。(:

それが役に立てば幸い。

p/s: この要件を満たすために +0.5、+0.4 .. +0.1 が使用されます

最初に現れた者が優先される

答え3

VBS を使わずに 6 つのヘルパー セルが必要でした。データが A1 から F1 にある場合:

G1を

=INT(RIGHT(A1,2)&"006")

H1を

=INT(RIGHT(B1,2)&"005")

I1を

=INT(RIGHT(C1,2)&"004")

J1を

=INT(RIGHT(D1,2)&"003")

K1を

=INT(RIGHT(E1,2)&"002")

L1を

=INT(RIGHT(F1,2)&"001")

そしてM1は

=LEFT(INDIRECT(ADDRESS(ROW(),MATCH(LARGE(G1:L1,1),G1:L1,0))),1)&LEFT(INDIRECT(ADDRESS(ROW(),MATCH(LARGE(G1:L1,2),G1:L1,0))),1)&LEFT(INDIRECT(ADDRESS(ROW(),MATCH(LARGE(G1:L1,3),G1:L1,0))),1)

これらの 7 つの数式をコピーして、各行に貼り付けることができるはずです。重複する値は左から右に処理されることに注意してください。

関連情報