=if(isna(VLOOKUP(R1C1,SOMERANGE,2,false)), "", VLOOKUP(R1C1,SOMERANGE,2,false))
=if(sum(SOMERANGE), sum(SOMERANGE), sum(OTHERRANGE))
のように、同じ式を数箇所に含む場合、無駄だなあと思いつつ、いつも仕方なく使ってますが、
もっと式を簡単にする方法はないでしょうか。
これらの式に対する具体例でも構いませんが、一般的にどんな方法が考えられますよ、
というアドバイスをいただけるととてもありがたいです。
No.4ベストアンサー
- 回答日時:
私は、いままで掲示板等で書いてきた経験で言わせていただきます。
Excelを始め、既存のアプリケーションの基本的な仕様に関わる部分に対してのご要望・ご質問(いわゆる個々のプリファレンス)というのは、99%不可能だと言って過言ではないと思います。=IF(ISERROR(VLOOKUP(A1,$G$2:$J$30,3,False)),"",IS())
IFの条件による結果は、並列処理ですから、IF(条件,真,偽)のそれぞれの引数は、それぞれ独立したもので、それを使うためには、#2の misatoannaさんの方式しかありません。それをダメ出しする理由など、私には考えられません。
私の古い資料を出してみましたが、今から、約20年前のMS社の表計算を、日本のアスキー社を通して紹介したときから、その関数の使い方など、考え方はずっと変わっていないものです。
それと、もう1つ。関数は、エラーに対して特殊なエラーコードを吐くようにできています。このエラーコードは、すべての関数の戻り値に優先するようにできています。もしも、文字列のエラー値を出力するようにできれば、おっしゃる問題は解決するかもしれません。しかし、それができるのは、ユーザー定義関数として、自分で作る以外ありません。そのためには、VBAの勉強が必要になります。
同じ繰り返しがダメなら、以下のようにするしかありません。
=IF(COUNTIF(R1C5:R17C5,R1C1),VLOOKUP(R1C1,R1C5:R17C6,2,FALSE),"")
単に、パターンが変わっただけです。しかし、英語の文章を書いているわけではありませんから、こういうパターンを避けるロジックは、関数上では存在しないと思います。
=IF(ISNA(VLOOKUP(R1C1,MYRANGE,2,FALSE)), "", VLOOKUP(R1C1,MYRANGE,2,FALSE))
これで、なんの問題もありません。
もちろん、これだけに関してなら、このような逃げ方はあります。
例:
=INDEX(R1C5:R11C6,COUNTIF(R1C5:R11C5,R1C1)*MATCH(R1C1,R1C5:R11C5,1),2)
5 6 列番号
----------
0 □ ←空白値を入れる
1 A
3 B
5 C
7 D
9 E
11 F
13 G
15 H
17 I
19 J
それで良いか悪いのか、なんとも言えませんが、あえてする必要があるのでしょうか?
なお、EXCELの基本的な使い方のひとつに、分かち書きしたり、名前を利用したりする方法があります。
6.名前の活用
7.配列数式
[XL] メモリを節約するワークシートの作成方法
参考URL:http://support.microsoft.com/default.aspx?scid=h …
No.3
- 回答日時:
No.2
- 回答日時:
シート内でいくつも同じ数式を使われるのでしたら、数式に名前を
つけられたらいかがでしょうか。
[挿入]-[名前]-[定義]から、例えば
名 前: QQQ
参照範囲: =VLOOKUP(A1,$G$2:$J$30,3,False)
のようにしておいて、数式では
=IF(ISERROR(QQQ),"",QQQ)
のように使います。
ありがとうございます。書き忘れてしまいましたが、別のセルは使わないでいい方法がないだろうか、と考えています。マクロもなしです。
言葉で説明するのも難しいのですが、下のようなイメージです。
=IF(ISERROR(VLOOKUP(A1,$G$2:$J$30,3,False)),"",IS())
IS()は、IS系関数で最後に評価された式の結果を取得する関数のつもりです(VLOOKUPの結果が返る)。このような仕組みがあれば便利だなーと思っているのですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) excel 行でソートすると計算式が上手くいかない。 6 2022/06/01 08:18
- Excel(エクセル) A列が指定数値以上になったらD列の計算式を変更 3 2022/07/11 11:03
- その他(Microsoft Office) エクセルについて教えてください。 2 2022/10/20 14:55
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- その他(Microsoft Office) 計算式にはゼロ表示をしたい 6 2022/05/14 09:33
- Excel(エクセル) Excelの関数についての質問です。(vlookup関数) A列 B列. C 1 大阪 50. 検索 6 2023/08/11 13:35
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) マクロを簡潔にしたい 6 2022/09/16 10:37
- Excel(エクセル) Formulaプロパティーを使ってセルに数式を組んだのですが簡潔にしたい。 3 2022/08/21 20:51
- Excel(エクセル) Excelについて質問があります。 関数の数値入力についてなのですが、 b1にー c1に数値 がある 1 2023/05/28 12:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelのセルを飛ばして入力する
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excel 2019 のピボットテーブル...
-
エクセルの行の抽出について質...
-
【マクロ】エクセルにかいてあ...
-
スプレッドシート クエリ関数 1...
-
エクセルでセルに「氏名を入力...
-
MOS365 Excel Expert / Excel R...
-
excelの不要な行の削除ができな...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシートの関数VLOOKUP...
-
Excelで全角を半角にしたいので...
-
Excel初心者です。 詳しい方、...
-
エクセルの数式で教えてください。
-
4つのパターンを表示するEXACT...
-
スマートな関数を教えて下さい。
-
【Excel】セル内の時間帯が特定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報