詳しい方教えてください。
Excelで下記のような式が入っていたのですが、私の知識では理解出来ず、どのような意味、機能か教えて頂けないでしょうか。作成した人が既におらず、また周りに質問できる人がおらず、困っています。
またわからない式やマクロの式など出てきた場合、どうすればいいのでしょうか。
一つ一つ調べていけばいいのでしょうが、それでも私のレベルではわからないことがあります。
どうしてこのような式を作成したのか、がわからないと業務でそのファイルを使用し続けることに不安を感じます。メンテナンスをしなければいけないときが来るかもしれませんし。。。
私の技術レベルでは、ファイルだけ渡されて使うことは出来ても理解するところまで及びません、、、情けないですが。。。
式の意味(2つ)、と調べてもわからない関数やマクロに出会ったとき、どのように調べていけばいいのか、アドバイスをいただければと思います。
式1
if(AND(isnumber(AU63),ISNUMBER(AW63)),if(AW63-AU63<0,"修正","OK"),"-")
→AU63とAW63が数値であり、かつ、AW63-AU63<0 なら 修正、そうでなければOK、AU63,AW63がすうちでなければ”-”を入力する、でしょうか。
式2
@index(sheet1!G13:G81,column()-@cell("col",sheet2!F6)+1,row()-@cell("row",sheet2!f6)+1)
→すみません。こちらについては全く理解ができず。。。
ご教授頂ければと思います。
No.3ベストアンサー
- 回答日時:
こんばんは
各関数の基本的な構文を調べて、分解して考えれば宜しいのではないでしょうか?
例えば、ご提示の式1であれば、IF関数の構文は、
IF(論理式, [値が真の場合], [値が偽の場合])
ですが、ご提示の場合はこれがネストした形式になっています。
式1を上記の各項ごとに分解してみれば、
if(
AND(isnumber(AU63),ISNUMBER(AW63)), //条件式1
if(
AW63-AU63<0, //条件式2
"修正", //条件1が真で条件2も真の場合
"OK" //条件1が真で条件2が偽の場合
),
"-" //条件1が偽の場合
)
※ 必要なら、空いているセルに、各項に=を付して数式として入力してみれば、部分々々での値がどうなっているかを確認することができるでしょう。
式2の「@」記号に関しては、まず以下をご参照ください。
(無いものとして考えても、意味の上では違いはありません)
https://support.microsoft.com/ja-jp/office/%E6%9 …
INDEX関数は、
INDEX(配列, 行番号, [列番号])
ですから、
index(
sheet1!G13:G81, //配列範囲
column() - cell("col",sheet2!F6) + 1, //行番号
row() - cell("row",sheet2!f6) + 1 //列番号
)
のように展開できます。
※ 項の内容がさらに関数になっていてわかりにくい場合には、再度展開してゆくことを繰り返せば順次単純な式となりますので、理解しやすくなると思います。
※ 上式の場合は、CELL関数が情報関数の一つで、指定されたセルの「列番号」や「行番号」を返す関数であることがわかれば、理解できるものと思います。
https://support.microsoft.com/ja-jp/office/cell- …
ご提示の式の場合は、Cell関数内のシート名は不要ですし、更には、普通にCOLUMN(F6)、ROW(F6)のようにしてしまった方が、多分、理解しやすくなるものと思います。
また、「+1」も省略してしまうなら G6、F7を指定しておくことで可能にはなりますが、こちらの場合は、式の意味がわかりにくくなってしまう可能性があります。
実際に、どのように使っているのかが不明ですが、行番号の計算に列番号を用い、列番号の計算は行番号となっていて、単純な増減になっていますので、フィルコピーした際に元の表の行列を入れ替えた様なイメージになるものと想像します。
(ご提示の式では、参照元のsheet1!G13:G81が絶対参照になっていないのでそうはならないのですが、その点が腑に落ちませんけれど・・)
単純に表の行、列の入れ替えだけが目的なら、TRANSPOSE 関数というものも用意されています。
https://support.microsoft.com/ja-jp/office/trans …
No.2
- 回答日時:
式1 についてはその認識で大丈夫です。
本来の目的としては、
if(AW63-AU63<0,"修正","OK")
だけで良いのでしょうが、
AW63セルとAU63セルに、空白など数値が入力されていない状況に対する処理が加えられているという事ですね。
ですので、
>AU63とAW63が数値であり、
かつ、
AW63-AU63<0
なら 修正、
そうでなければ OK、
AU63,AW63がすうちでなければ”-”
……ではなく、
AW63-AU63<0
なら 修正、
そうでなければ OK、
ただし、AU63,AW63が数値でなければ”-”
と考えたほうが全体を理解しやすいと思います。
・・・
式2 については、
おそらく、別のシートのセルを指定する方法を理解されていないのだろうと推測します。
同じシート上のセルを参照するときは
=A1
=A1:A10
=IF(A1="Good","良好","ダメ")
=SUM(A1:A10)
のように指定します。
別のシート……Sheet2のA1セル、A10セルの場合は、
=Sheet2!A1
=Sheet2!A1:A10
=IF(Sheet2!A1="Good","良好","ダメ")
=SUM(Sheet2!A1:A10)
のように指定します。
「シート名 + ! + セル番地」
で指定すると覚えてください。
あとは、質問者さんならあと少し調べることで理解できると思います。
……ちなみに別のファイル(book)のセルも指定する方法があります。
[ファイル名]シート名!セル番地
↓
[example.xlsx]Sheet2!A1
こんな指定になります……
という事で、
@index(sheet1!G13:G81,column()-@cell("col",sheet2!F6)+1,row()-@cell("row",sheet2!f6)+1)
これを
index(G13:G81,column()-cell("col",F6)+1,row()-cell("row",f6)+1)
として見ると、理解できると思います。
使用されている関数の使い方を一つずつ確認してみましょう。
……まあ、「COLUMN()」と「ROW()」が意味不明という方もいらっしゃいます。
これはその関数を使っているセルのセル番地がそのまま適用されている状況です。
その式で評価しようとしているセルが
A1セルなら
COLUMN(A1)
B12セルなら
COLUMN(B12)
と同じです。
ROW関数も同じ。
(´・ω・`)
COLUMN(B12)は列の番号「2」
(B12は左から数えて2列目になるため「2」)
ROW(B12)は行の番号「12」
(B12は上から数えて12行目になるので「12」)
くらいの説明しかない解説もありますからね。
・・・
このように関数だけでは説明できない部分もあります。
他にも例えば、
=MATCH(検索値,範囲 [,照合の型])
などと使い方の説明があった時に、
[ ] で囲まれたところは丸ごと省略することができる
と、あらかじめ説明されていないと
=MATCH(A1,B1:B10[,1])
などと書いて
「この数式には問題があります。」
と Excel から怒られることになったりする。(実際に怒られて思考が停止した人がいたんです)
本来は、”[” 、”]” を除いた
=MATCH(A1,B1:B10,1)
または省略して
=MATCH(A1,B1:B10)
が正解。
……ただし、MATCH関数の最後の ",1" は省略した時に自動で指定される値なので書かなくても良いけど、別の値(例えば ",0")の場合は省略できません。
他にも
=OFFSET(基準,行数,列数 [,高さ,幅])
に対して
=OFFSET(A1,,3)
とか、
「行数」「列数」に相当する値が無いときは、”0” が指定
「高さ」「幅」 に相当する値が無いときは、それぞれ ”1” が指定
されていると見なす。
なんてね。
ルールを覚えるまで今しばらく時間がかかると思いますが、気長にExcelと付き合ってあげてください。
丁寧な回答ありがとうございます。
未だに式が理解出来ず、理解出来たとしても自分で同じような式が作ることが出来るかがわからず。。。
気長にExcelと付き合うしかないのでしょうね。。。
頭が痛いですが、諦めずに頑張りたいと思います。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- Excel(エクセル) A、B、C・・・AA、ABと連番でふりたい、調べても式の意味がわからずパニックになってしまう 1 2023/01/23 19:17
- Excel(エクセル) Excelでなぜこのような式をつかっているのでしょうか、行に1,2,3と連番を振るだけなのに 5 2023/04/08 20:00
- Excel(エクセル) Excel この式はどんな意味でしょうか。。。 4 2023/01/14 22:30
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) Excelで漢字人名が勝手に並び変わる(続) 4 2023/03/21 21:28
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Excel(エクセル) Excel使用前提 同じフォルダ内にあるファイルの集約等をマクロでできますか 4 2022/09/06 19:03
- 高校 対数方程式につきまして 4 2022/05/05 07:55
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
昨日まで動いていたエクセルの...
-
マクロを消すマクロは不可能?
-
VBA マクロ実行時エラー’1004Ra...
-
Excelが勝手にシート移動してし...
-
別のパソコンでエクセルのマク...
-
Excelマクロ ファイル名が変わ...
-
マクロを設定したのに、拡張子...
-
ワードのマクロを他のPCに移すには
-
エクセル2013vbaで、見えない名...
-
excelファイルに使われているVB...
-
【マクロ】エラーが発生⇒実行時...
-
VBAを一度起動するとずっと出て...
-
アクセスでファイルを開いたと...
-
エクセルで印刷する方法 エクセ...
-
EXCELマクロコードを、それを含...
-
コピーしたファイルのマクロを...
-
エクセルのマクロを実行後、閉...
-
エクセルのマクロを削除しても...
-
ワードを開いた時にメッセージ...
-
マクロの有効無効
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAを一度起動するとずっと出て...
-
コピーしたファイルのマクロを...
-
VBA マクロ実行時エラー’1004Ra...
-
昨日まで動いていたエクセルの...
-
マクロを消すマクロは不可能?
-
エクセル終了時の保存確認メッ...
-
Excelが勝手にシート移動してし...
-
excelファイルに使われているVB...
-
エクセルマクロ実行中に別ファ...
-
別のパソコンでエクセルのマク...
-
EXCEL マクロ クリップボードク...
-
アクセスでファイルを開いたと...
-
エクセル2013vbaで、見えない名...
-
Excelマクロ ファイル名が変わ...
-
excelが別プロセスで起動してし...
-
外部データを取り込むマクロ
-
【マクロ】エラーが発生⇒実行時...
-
マクロを設定したのに、拡張子...
-
Excel2010 PERSONAL.xlsbの挙動...
-
エクセルマクロを有効にしない...
おすすめ情報