• ベストアンサー

エクセルの項目を表示させる関数

添付の画像で、黄色のセルのような解がでる関数が知りたいです。 ご存知の方いっらっしゃれば教えてください

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

G2には =INDEX(B$1:F$1,MATCH("?*",B2:F2&"",0)) と記入し,コントロールキーとシフトキーを押しながらEnterで入力,下にコピー。 E2には =INDEX(B$1:F$1,MATCH(-1,B2:F2,-1)) とこちらはふつーに記入し,下にコピー。

hasamitogi
質問者

お礼

ありがとうございます。 E2というのは、H2ということではないですか?

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

意外に、文章で書くと簡単だが(例 データのある一番左の列)、エクセル関数では難しいタイプの課題ひとつ。 既に出ている回答も配列数式などの回答になっている。その他も上級者で無いと、思いつくのはまず無理な式。 まあ回答を鵜呑みするしかないだろう。 ーー やさしいというわけではないが、VBA では End(xlToRight)などをよく使うので、使ってやって見た。 VBAでユーザー関数を定義する方法だと 標準モジュールに Function lft(a) Application.Volatile r = a.Row c = Range("A" & r).End(xlToRight).Column lft = Cells(1, c) End Function Function Rgt(a) Application.Volatile r = a.Row c = Range("G" & r).End(xlToLeft).Column Rgt = Cells(1, c) End Function 例データ A-I列 データはA-F列の例 G列は空白列にする。 -- 00/01 00/02 00/03 00/04 00/05 aa 10 2 00/01 00/05 bb 10 5 00/02 00/03 cc 5 50 50 00/02 00/04 dd 23 4 1 00/02 00/05 ee 2 4 6 00/01 00/05 ーーー H2は =lft(A2) 下方向に式を複写する。 I2は =rgt(A2) 下方向に式を複写する。

noname#204879
noname#204879
回答No.3

G2: {=MIN(IF($B2:$F2>0,$B$1:$F$1))} H2: {=MAX(IF($B2:$F2>0,$B$1:$F$1))}

hasamitogi
質問者

お礼

ありがとうございます。シンプルでいいですね

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

こんばんは! 一例です。 お示しの画像の配置の場合・・・ G2セルに =IF(COUNT(B2:F2),INDEX($B$1:$F$1,,MIN(IF(B2:F2<>"",COLUMN(A1:E1)))),"") H2セルに =IF(COUNT(B2:F2),INDEX($B$1:$F$1,,MAX(IF(B2:F2<>"",COLUMN(A1:E1)))),"") 上記の数式はどちらも配列数式になってしまいますので、Shift+Ctrlキーを押しながらEnterキーで確定します。 この画面からコピー&ペーストする場合は各セルに貼り付け後、数式バー内で一度クリック! 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 最後にG2・H2セルを範囲指定 → H2セルのフィルハンドルで下へコピーします。 ※ セルの表示形式は1行目と同じ表示形式にします。m(_ _)m

関連するQ&A