
No.3ベストアンサー
- 回答日時:
No2です。
なさりたいことが、いまいち把握できないのですが……
>現在、=IFERROR(VLOOKUP($G832,G:I,3,FALSE),"")で一番上の処理番号が表示されます。
最初の添付図に示されている関数は(ハッキリとは確認できませんが)
=IFERROR(VLOOKUP($G10,G:I,6,FALSE),"")
となっているように見えます。
この式の場合は範囲外の参照になるので、結果は必ず空白になるのではと想像しました。
>社名を入れた時点で、I列に新しい処理番号を表示させたいです。
ひょっとして、I列に関数を設定しようというお考えでしょうか?
その場合、表示セルを参照することになるので、仕組みそのものが破綻しているように思えます。(どのような利用方法なのかもわかりませんが・・・)
No2の式はそのようなことは想定していません。
あくまでも、表示セル(=関数を設定するセル)は、被参照セル(範囲)とは異なるものと想定しています。
>/で割るのはなぜなのでしょうか!?
指定の会社名で検索するものと仮定していますので、(例示の表ではG列がみな同じ会社名のようにも見えますが)異なる会社名のデータの場合は分母がFALSE(=0)となり、結果がエラー値となることを利用して、指定の会社名のデータだけが抽出対象となるようにするためです。
とは言え、上記のように矛盾を含む利用は想定していませんので、例示の表のI列に式を設定しても上 計算は出来ないはずです。
参照する元データとは別のセルに設定すれば動作するはずです。
ご回答いただきありがとうございます。分かりづらくて申し訳ありません。。
はい、このエクセルシートが台帳になっており、直接入力してI列に直接関数を入れて表示させようとしていました。
仕組み自体が駄目なんですね・・・
/で割ってエラーにさせるご説明もありがとうございます。
一度閉じて再度再考してから質問しなおしたいと思います。
ありがとうございました!
No.2
- 回答日時:
こんにちは
>一番下のデータを表示させたいです。
添付図に記されている関数式は、自分を参照するようになっているし、指定列が範囲外になっていて、意味不明のものになっているので、なさりたいことがはっきにしませんでした。
ひとまず、「会社名が指定の名と一致するデータのうち、行番号が一番大きなものを採用したい」という意味に解釈しました。
ちなみに、Vlookupで一致検索をすると、最初にヒットしたデータを採用しますので、ご質問文のような結果になります。
ですので、データの順を逆にしておけば、これをそのまま利用することができるようになると思われます。
つまり、現状では新しいデータを最下行に追加する形式で運用しているものと推測しますが、これを、「新しいデータは常に2行目に追加挿入する」という運用にすることで実現できるでしょう。
さて、ご質問の添付図が元データなのか、結果を表示する表なのかわかりませんが、仮に、これを元データとして、この表から「指定の会社名のデータのうち最下行にあるデータを取得」する方法についてです。
元データが違う場合でも、これを応用すれば出来るものと思います。
G列が検索対象とする会社名の列で、I列が参照したいデータと仮定します。
指定の会社名を「指定社名」とするなら、結果を表示したいセルに、
=IFERROR(INDEX(I:I,AGGREGATE(14,6,INDEX(ROW($G$2:$G$99)/($G$2:$G$99=指定社名),,),1)),"")
とすることで、求めるデータが得られるものと思います。
※ エクセル環境が手元にないので、机上での回答のため、未検証です。
また、誤記等を含むかも知れませんが、ご容赦願います。
ありがとうございます!
=指定社名のところは検索対象の社名の$Gセルで良かったですよね?
0と表示されてしまいます。もう少し色々いじってみます。
教えていただきたいのですが、ROW($G$2:$G$99)/($G$2:$G$99=指定社名),,)ですが、/で割るのはなぜなのでしょうか!?
勉強不足ですみません。。
No.1
- 回答日時:
> 一番新しいデータを表示させたいです。
そのデーターに大小関係があり、且つ新しいほど大きい、と言うのであれば、
MAX関数で良いはずです。
会社メイト関連しているのであれば、SUMPRODUCT関数が良いと思います。
> 一番下のデータを表示させたいです。
例) =INDEX(B:B,COUNTA(A:A))
この例は、A列の最終行に位置するB列の内容を返します。
ありがとうございます!
MAXとSUMPRODUCTを組み合わせるという事でしょうか?
=INDEX(G:G,COUNTA(I:I)) で入れてみましたが0と表示されてしまいます。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルに張り付けた写真のフ...
-
【VB.NET】Excelの最終行までの...
-
VBAでPDFを作成する際、同じ名...
-
スイッチが二台あり、別々のア...
-
vba マージエリアの行数を非表...
-
高校1年生情報の問題について。
-
Windowsで複数のファイルを同じ...
-
【VB.NET】App.configにファイ...
-
VB.NETでMSComm が追加できず?
-
バッチで当日日付で作成される...
-
SJISで、全角文字Aの文字コード...
-
vba 空のデータをSplitする時の...
-
VB.NET Excelを読み込んでDataT...
-
asp.netにてgridviewの列を動的...
-
お世話になります。 Windows Up...
-
VBAでPDF作成をしたあと、指定...
-
Wi-Fiのパスワードが指定なしと...
-
バッチファイル IF文の書き方に...
-
VBAのRegExpで後方一致/不一致...
-
Excelでボタン(フォームコント...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SJISで、全角文字Aの文字コード...
-
エクセルに張り付けた写真のフ...
-
スイッチが二台あり、別々のア...
-
VBAでPDFを作成する際、同じ名...
-
【VB.NET】App.configにファイ...
-
VB.NET Excelを読み込んでDataT...
-
vba 空のデータをSplitする時の...
-
Windowsで複数のファイルを同じ...
-
VB.NETでMSComm が追加できず?
-
【VB.NET】Excelの最終行までの...
-
aspxをhtmlに変換する方法について
-
高校1年生情報の問題について。
-
Windows10にデュアルブートでXP...
-
onedrive にexcelファイルをア...
-
phpのファイルがブラウザで開か...
-
Accessのトグルボタンでサブフ...
-
グラフをC#のASP.net MVCで表示...
-
ffftpでファイル取得が0バイト...
-
お世話になります。 Windows Up...
-
Excelでボタン(フォームコント...
おすすめ情報
処理番号列に、社名を入れた時点で、I列に新しい処理番号を表示させたいです。
宜しくお願いします。
現在、=IFERROR(VLOOKUP($G832,G:I,3,FALSE),"")で一番上の処理番号が表示されます。
失礼しました。参照が逆になっていましたね・・・
参照を$セル番号で指定して入れましたが、やはり0です。
=INDEX($G12,COUNTA(I:I))
もう一息な気がしているのですが・・・