• ベストアンサー

エクセルの関数式について教えてください。お願いします。

エクセルの関数式について教えてください。お願いします。   A B C D E F G H I J 1 9 6 1 3 4 7 8 2 5 10 2 6 4 9 3 8 7 1 5 10 2 3 1 3 -2 0 2 0 -4 1 1 -2 たとえばこのような表があります。 1の行にはランダムに1から10までの数字が入ります。 2の行にもランダムに1から10までの数字が入ります。 B1に6が入っています、A2にも同じ数字の6が入っています、 6はB1からA2に1つ上がっているので1 A1には9が入っています、C2にも9が入っています。 9はA1からC2に2つ下がっているので-2 D1には3が入っています、D2にも3が入っています。 3はD1からD2動いていないので0 といった具合に、1の行に入った数字が2の行の同じ数字を感知して その数字がどれだけ上がったのか、下がったのかを 3の行に表したいのですが、どのような関数を使ったらよいのでしょうか? 教えてください。お願いします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

前のご質問と全く同じ内容ですね。前のご質問については閉じる操作をしてください。 前にも示したのですが次のような式をA3セルに入力してJ3セルまで横方向にオートフィルドラッグコピー(A3セルを選択すればセルの右下隅に■が表示されますのでそれを選択した上で左ボタンを押しながらJ3セルまでドラッグします。)すればよいでしょう。 =MATCH(A2,1:1,0)-COLUMN(A3)) 式の意味はMATCH関数を使っていますがこれはA2セルの値を1行目(1:1と書かれているのはA1セルから横方向のすべての列のセルを指しています)のセルでA1セルから何番目のセルに有るのかを求めるものです。 A2が6ですからMATCH関数の答えは1行目で6の位置ですから2となります。すなわち、A1セルから横方向に2番目のセルということです。 一方COLUMN関数は、引数がA3セルになっていますがその場合にはA列、すなわち左から1番目の列で答えは1となります。 2から1を引くことでA3セルの値は1となります。 C3セルについて考えてみましょう。 C3セルでの式はそのセルを選択することで数式バー上でみることができますね。次のような式になっています。 =MATCH(C2,1:1,0)-COLUMN(C3)) C2セルの値、すなわち9を1行目で探しますと左から1番目(A1)のセルに有りますのでMATCH関数の答えは1です。それに対してCOLUMN関数の答えはC列ですから3ですね。 1から3を引くことでC3セルの答えは-2となります。 他のセルについてもご自分で納得できるまで考えてみることですね。

yshcyb
質問者

お礼

何度もすみませんでした。 一度目の時はエラーが出て出来ませんでした。 他のセルで試したら出来うようになりました。 本当に何度もすみませんでした。 ありがとうございました。

その他の回答 (3)

回答No.4

考え方が逆。 なぜなら、基準としている(考えようとしている)数値が2行目に入っているから。 >B1に6が入っています、A2にも同じ数字の6が入っています、 >6はB1からA2に1つ上がっているので1 6はA2セルからB1セルへ列が右へ1つずれているので1 質問者流だと「6はA2からB1に下がっているので1」 (ただし、下がる方を正と考えた場合) >A1には9が入っています、C2にも9が入っています。 >9はA1からC2に2つ下がっているので-2 9はC2セルからA1セルへ列が左へ2つずれているので-2 質問者流だと「9はC2からA1に上がっているので-2」 前回、説明不足の部分は回答者が十分な説明をしているので 前回の回答でわからない部分を質問された方が良かったと思います。

参考URL:
http://okwave.jp/qa/q6005083.html
yshcyb
質問者

お礼

説明不足を補っていただき、 尚且つご指摘ありがとうございます。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 まず、A3セルに次の数式を入力して下さい。 =MATCH(A2,1:1,0)-COLUMN()  後は、A3セルをコピーして、A4から右に向かって、必要な数だけ貼り付けて下さい。  尚、2行目に等しい数値が、1行目に無かったり、逆に複数あったり、2行目が空欄である場合等にも対応させる場合には、A3セルに入力する数式を、次の様に変えて下さい。 =IF(A2="","",IF(COUNTIF(1:1,A2)=1,MATCH(A2,1:1,0)-COLUMN(),IF(COUNTIF(1:1,A2)=0,"無し","複数")))

yshcyb
質問者

お礼

丁寧な説明ありがとうございます。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

上がる下がるではなく、数字がどの列にあるかを相対的に表示させたいと言うことですか? MATCH関数で良いんじゃないですか?  =MATCH(B1,A1:J1) これで B1と同じ値が入ったセルが左から何番目にあるかを調べられます。 さらに COLUMN関数でセルの位置が何列目にあるかを調べることができます  =COLUMN(B1) あとは算数ですよね。足し算引き算をしてください。

yshcyb
質問者

お礼

ありがとうございます。 参考になりました。

関連するQ&A