以前、質問した際、下記URLのとおり、回答をいただき、解決したと思ったのですが、問題が起きましたので、再度、質問させていただきます。
以前の質問と回答のURL:
https://oshiete.goo.ne.jp/qa/11150170.html
回答を頂いたとおり、数式を入力すると、上手く結果が表示されたのですが、その後、A列の左に列を挿入すると、添付画像のとおり、間違った結果が表示されてしまいます。
数式を変更する必要があるようです。どのように変更すればよいか、回答願います。
No.3ベストアンサー
- 回答日時:
こんばんは!
前回のサイトのNo.2で回答した者です。
本来であれば数式が入っている列(または行)がある場合は極力行・列の挿入はしない方が良いと思いますが・・・
画像ではA列が挿入されていますが、A列はデータの対象外でよいのでしょうか?
とりあえず画像の配置だとX1~X6の6列を常に検索対象としてみました。
行挿入前のG2セルに
=IFERROR(SMALL(IF(INT($A2:$F2/10)=1,$A2:$F2),COLUMN()-COLUMN($F1)),"")
前回同様配列数式なので、Ctrl+Shiftキーを押しながらEnterキーで確定してください。
G2セルのフィルハンドルで列・行方向にコピー!
これでA列を挿入しても検索対象が1列ずつずれるはずです。
※ 画像では列方向に昇順のデータになっていますが、
バラバラでも小さい順に表示されます。m(_ _)m
No.2
- 回答日時:
こんにちは
前回回答者です。
>間違った結果が表示されてしまいます。
どちらの式を利用しているのか不明ですが、前者の式を利用しているのならエクセルの自動修正で問題は出ないはずと思いますので、後者の式を利用なさっているものと想像しました。
出現順に抽出するという内容であるため、間接的な参照式になっているので、エクセルの自動修正では対応しきれない部分が残ってしまいます。
>どのように変更すればよいか、回答願います。
セル範囲「$A2:$F2」が、エクセルによって「$B2:$G2」に修正されていると思いますが、このうちの一番最初のものだけ「$A2:$G2」とすれば同じ結果になるはずです。
(正しい意味合いで修正するならば、範囲はそのままにしておいてインデックス値を1減算するのが良いですが、上記の修正の方が簡単なので・・・)
なお、値の範囲の判定に関して、前回のNo4様の式がコンパクトですので、そちらを拝借して書き直してみると、H2セルの式は
=IFERROR(INDEX($A2:$G2,AGGREGATE(15,2,INDEX(COLUMN($B2:$G2)/(INT($B2:$G2/10)=1),,),COLUMN(A1))),"")
となるものと思います。
※ たいして長い関数式ではないので、分解して意味を理解しておけば、応用が効くようになることと思います。
No.1
- 回答日時:
> A列の左に列を挿入すると
セル参照が壊れている様です。
おそらくは COLUMN(A1) あたりかと思いますが...
通常は操作に合わせてセル参照を自動修正してくれる筈ですが、
複雑な数式を使用すると追従しきれない場合があるようです。
テーブルでの構造化参照を使って、セル参照を排除しては如何でしょうか。
操作例
B1:G5 の範囲でテーブルを作成し「テーブル1」とする
H2:K5 の範囲に、以下の配列数式を入力し Ctrl+Shift+Enter で入力
10台1番目 =IFERROR(SMALL(IF(FLOOR(テーブル1[@]/10,1)=1,テーブル1[@]),1),"")
10台2番目 =IFERROR(SMALL(IF(FLOOR(テーブル1[@]/10,1)=1,テーブル1[@]),2),"")
10台3番目 =IFERROR(SMALL(IF(FLOOR(テーブル1[@]/10,1)=1,テーブル1[@]),3),"")
10台4番目 =IFERROR(SMALL(IF(FLOOR(テーブル1[@]/10,1)=1,テーブル1[@]),4),"")
参考
テーブル
https://support.office.com/ja-jp/article/excel-% …
テーブルでの構造化参照
https://support.office.com/ja-jp/article/excel-% …
配列数式
https://support.office.com/ja-jp/article/%E9%85% …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Visual Basic(VBA) A列にある値をB列・C列にVBAで切り出し 3 2022/04/09 19:20
- Excel(エクセル) 【Excel質問】 「本日の日付」から指定条件を満たす営業日経過後の日数を表示させる関数式 3 2022/06/06 23:28
- Excel(エクセル) 下記エクセルの式がなぜこうなるのか理由が知りたいです。 6 2022/08/20 00:43
- 日本語 読解力の質問です(Excel含む) 12 2022/08/02 13:25
- Excel(エクセル) Excelの関数について 3 2022/11/13 23:47
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Excel(エクセル) <スプレッドシート>IF関数の複数条件について 5 2022/10/27 14:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クエリのキャンセルがいつにな...
-
Accessにインポートした複数の...
-
あるテーブルのデータを追加、...
-
accessテーブル作成クエリを実...
-
SI Object Browserのテーブルス...
-
VIEWしか読み取れないユーザの...
-
ACCESS-リンクテーブルの設定で...
-
エクセルでテーブルの最終行が...
-
テーブル作成クエリで新テーブ...
-
SQLスクリプトを自動生成する方法
-
IDENTITY列の複数テーブルへのI...
-
SQLサーバーのテーブルの値...
-
列サイズ変更時、DB停止は必要?
-
ACCESS97で テーブルの更新に...
-
ユニオンクエリの結果をテーブ...
-
アクセス97のリレーションシ...
-
UNIONなどで複数のテーブルから...
-
重複するレコードに対しフラグ...
-
「マスタ」と「テーブル」の違...
-
ACCESSのSQLで、NULLかNULLでな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでテーブルの最終行が...
-
accessテーブル作成クエリを実...
-
クエリのキャンセルがいつにな...
-
ユニオンクエリの結果をテーブ...
-
SI Object Browserのテーブルス...
-
UNIONなどで複数のテーブルから...
-
あるテーブルのデータを追加、...
-
ストアドをまたがるローカル一...
-
Accessにインポートした複数の...
-
コンボボックスで入力したもの...
-
列サイズ変更時、DB停止は必要?
-
SQLサーバーのテーブルの値...
-
Access のリレーションシップで...
-
レプリケーションしているテー...
-
位置を指定してフィールドを追...
-
SQLスクリプトを自動生成する方法
-
テーブル作成クエリで新テーブ...
-
ADOでSeekメッソッドが使えませ...
-
excel テーブル
-
VIEWしか読み取れないユーザの...
おすすめ情報