dポイントプレゼントキャンペーン実施中!

詳しい方教えてください。

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)

→すみません。こちらについては全く理解ができず。。。


ご教授頂ければと思います。

A 回答 (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 …
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

transpose関数というのを初めて知りました。

ありがとうございました。

お礼日時:2022/12/15 18:44

式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と付き合ってあげてください。
    • good
    • 0
この回答へのお礼

丁寧な回答ありがとうございます。
未だに式が理解出来ず、理解出来たとしても自分で同じような式が作ることが出来るかがわからず。。。

気長にExcelと付き合うしかないのでしょうね。。。

頭が痛いですが、諦めずに頑張りたいと思います。

お礼日時:2022/12/15 18:42

Excel 式 解読 - 楽天ウェブ検索


https://websearch.rakuten.co.jp/Web?qt=Excel%E3% …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2023/03/19 19:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!