• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelのLARGEとSMALLについて)

ExcelのLARGEとSMALLについて

このQ&Aのポイント
  • ExcelのLARGE関数とSMALL関数を使用して、指定された条件に基づいて列番号を取得する方法について質問があります。
  • 質問者は、Excelの機能を使って列番号を取得しようとしていますが、特定の条件(○、×)を考慮する必要があります。
  • マクロの使用が制限されているため、関数だけを使用して解決する方法を探しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.4

Q ○、×の判断を除けば、 =IF(COUNTA(2:2)=0,"",LARGE(IF(2:2<>"",COLUMN(2:2)),1)) と =IF(COUNTA(2:2)=0,"",SMALL(IF(2:2<>"",COLUMN(2:2)),1)) で解決出来ました。 ですが、○、×の判断を入れることが出来ません・・・ A 単純な添削では次のような数式で良いでしょう。 =IF(COUNTA(2:2)=0,"",LARGE(IF((2:2<>"")*(1:1="○"),COLUMN(2:2)),1)) と =IF(COUNTA(2:2)=0,"",SMALL(IF((2:2<>"")*(1:1="○"),COLUMN(2:2)),1)) 論理演算のANDは四則演算の乗算に置き換えられます。

その他の回答 (4)

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.5

=MATCH(0,0/(A1:I1="○")/(A2:I2<>""),0) Ctrl + Shift + Enterで確定 =LOOKUP(1,0/(A1:I1="○")/(A2:I2<>""),COLUMN(A:I)) Enterで確定

WinterCat-Huyu
質問者

お礼

早速のご回答有難うございます。 大変勉強になりました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 一例です。 最小の場合 =IF(COUNTA(2:2),MIN(IF((1:1="○")*(2:2<>""),COLUMN(1:1))),"") 最大の場合 =IF(COUNTA(2:2),MAX(IF((1:1="○")*(2:2<>""),COLUMN(1:1))),"") どちらも配列数式になりますので、Ctrl+Shift+Enterで確定してください。 ※ 該当データがない場合(×の列にしかデータがない場合)は「0」が表示されます。m(_ _)m

WinterCat-Huyu
質問者

お礼

早速のご回答有難うございます。 AND式でやっても駄目だったのですが、四則演算で可能だったのですね・・・ 大変勉強になりました。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.2

>なんとか、関数だけで実現を目指しております。 2行目の最大値 A3=LARGE(INDEX((1:1="○")*(2:2<>"")*COLUMN(1:1),0),1) 2行目の最小値 B3=LARGE(INDEX((1:1="○")*(2:2<>"")*COLUMN(1:1),0),COUNTIFS(1:1,"○",2:2,"<>")) 貼付画像はExcel 2013で検証した結果です。 Excel 2007以降のバージョンで再現できます。 最小値を求めるのにLARGE関数は不適切と思われるでしょうが対象外のセルに大きな数値を返す配列を数式内に設定することが複雑になるので対象セル数をカウントして逆順の値を抽出する手法を使いました。 尚、此処で使っているINDEX関数は配列値を加工するために使用していますのでLARGE関数へ引き渡す値は配列値になります。

WinterCat-Huyu
質問者

お礼

早速のご回答有難うございます。 このようなやり方もあるのですね。 勉強になりました。

回答No.1

K2 =min(index(column(a2:i2)+9^9*((a1:i1="×")+(a2:i2="")),)) L2 =max(index((a1:i1<>"×")*(a2:i2<>"")*column(a2:i2),))

WinterCat-Huyu
質問者

お礼

早速のご回答有難うございます。 大変勉強になりました。

関連するQ&A