- ベストアンサー
エクセル複雑な処理の解決法とは?
- エクセルで複雑な処理を行う方法について教えてください。エクセルのバージョンや操作レベルについても教えてください。
- エクセルで重複した数値にインデックスされた文字列を昇順に並び替える方法について教えてください。
- 具体的な使用例として、任意の文字列と数値をセットにして昇順に並び替え、さらに文字列も一緒に並び替える方法について教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
分かり易い方法は作業のための行を作って対応する方法です。 例えばA1セルからJ1セルにかけて<0>,<1>,<2>……が入力されており、A2セルからJ2セルにかけてお示しの数値が有るとします。 作業のための行を3行目に作るとしてA3セルには次の式を入力してJ3セルまで横にドラッグコピーします。 =A2+0.1/COLUMN(A1) そこでお求めの2行目の数値を5行目に並べて表示させるとしたら次の式をA5セルに入力してJ5セルまでドラッグコピーします。 =INDEX($A2:$J2,MATCH(LARGE($A3:$J3,COLUMN(A1)),$A3:$J3,0)) また、1行目にデータを並べるとしたらA6セルには次の式を入力してJ6セルまで横にドラッグコピーします。 =INDEX($A1:$J1,MATCH(LARGE($A3:$J3,COLUMN(A2)),$A3:$J3,0))
その他の回答 (3)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 一例です。 ↓の画像で元データは2・3行目にあるとします。 A5セルは単に =LARGE($A3:$J3,COLUMN(A1)) A6セルに =INDEX($A2:$J2,,SMALL(IF($A3:$J3=A5,COLUMN($A1:$J1)),COUNTIF($A5:A5,A5))) A6セルは配列数式になってしまいますので、Shift+Ctrl+Enterで確定! この画面からコピー&ペーストする場合は、 上記数式をドラッグでコピー → A6セルを選択 → 数式バー内でクリック → 貼り付け → そのまま(編集可能のまま)Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 最後にA5・A6セルをオートフィルでコピー! これで画像のような感じになります。m(_ _)m
お礼
ご回答ありがとうございます! tom04さんの方法や、KURUMITOの方法でも両方とも自分の求めていた処理ができました!動いた時はもう、、感動です…! わざわざ大変わかりやすい画像も添付してご指導くださり、ありがとうございました!
- duke_kimura
- ベストアンサー率39% (53/134)
少しずれるかも知れませんが。 EXCELで複雑な処理を行う際、EXCELの関数ではなくEXCEL VBAという物も利用でき、これは制約のあるプログラム言語(VB)のような物ですので、配列の計算程度であれば十分可能です。 もしプログラマの方でしたら、VBAの方がとっつきやすいかも、という話です。 関数での実装方法は分かりません。
お礼
回答していただいてありがとうございます! はい、確かにおそらく配列のような本格的なプログラムを組んでいけば可能かな…という考えはあったのですが、それほど自身はプログラムに長けていません^^; なのでパッチのような扱いやすい関数が無いものかと探しておりました。 VBAですか??いまPHPを勉強中の身なので、ちょっと調べてみようと思います。 ありがとうございました!
- LHS07
- ベストアンサー率22% (510/2221)
どのような結果にしたいのかわかりませんが 各セル A2に<0>, B2に<1>、C2に<2> A3に17, B3に14、C3に15 となっていて 3列の順番にならべてかえたときに2列の数字も対応させたいのでしょうか?
お礼
説明が下手でごめんなさい。^^; 『tom04』さんと『KURUMITO』さんがご指導してくださったような変わった処理がしたかったのです^^ 回答してくださって、ありがとうございました!
お礼
回答してくださってありがとうございます! すごいです!まさに求めていた通りの結果になりました!ありがとうございます。2回にかけて同じ種類の式を適用させるんですね、なるほど…