• ベストアンサー

エクセルの算式について

sheet1に、B3~AF36に①屑量というデータ、B40~AF72に②屑率というデータがあります。①と②は、その名の通り、行項目と列項目は同じで、値が異なっています。 これらを、Sheet2に、行項目+列項目に合致する値を①についてはF8から列方向に、②についてはG8から列方向に、反映させたいです。 その場合、D8~G8の各セルにどのような算式を組み込めば良いでしょうか。ご教示お願い致します。 尚、sheet2に示したそれぞれの4項目にはフィルタが出来るような形にしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • SI299792
  • ベストアンサー率48% (719/1487)
回答No.5

こちらでは正しく動いています。 可能性の高いのは、 Sheet1!B2 とSheet2!F7 Sheet1!B38とSheet2!F8 が違う。(全角・半角、後ろに空白がある等) 確認して下さい。 https://1drv.ms/x/s!AnfEM367OeSdkivXITZp7wtTp2la?e=gmzGh1

clarissuper999
質問者

お礼

ありがとうございました!解決致しました。また、色々なパターンについてもご教示頂き、とても勉強になりました。

Powered by GRATICA
全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • luka3
  • ベストアンサー率74% (310/416)
回答No.4

No.3の補足 Sheet1のB2とSheet2のF7(屑量(kg))、Sheet1のB38とSheet2のG7(屑率(%)) は、文字列として一致する必要があります。 見た感じ合っているみたいなので大丈夫と思いますが、全角半角の違いに気をつけてください。 (汎用性のために項目名をMATCHさせて場所を特定しているため)

全文を見る
すると、全ての回答が全文表示されます。
  • luka3
  • ベストアンサー率74% (310/416)
回答No.3

No.1さんので自分は表示できました。 SEQUENCE関数が対応してないのかと思いましたが、E列の表示はできてるようなので謎です。 なるべく簡単な関数で、No.1さんに近い汎用性を持たせたつもりで作るとこんな感じです。 D8:=INDEX(Sheet1!B:B,(ROW()-8)/27+MATCH($F$7,Sheet1!$B:$B,0)+2) E8:=MOD(ROW()-8,27)+1 F8:=VLOOKUP(D8,INDIRECT("Sheet1!B"&(MATCH(F$7,Sheet1!$B:$B,0)+2)&":AF"&(MATCH(F$7,Sheet1!$B:$B,0)+2+31)),MATCH(E8,INDIRECT("Sheet1!B"&(MATCH(F$7,Sheet1!$B:$B,0)+1)&":AF"&(MATCH(F$7,Sheet1!$B:$B,0)+1)),0),FALSE) G8:=VLOOKUP(D8,INDIRECT("Sheet1!B"&(MATCH(G$7,Sheet1!$B:$B,0)+2)&":AF"&(MATCH(G$7,Sheet1!$B:$B,0)+2+31)),MATCH(E8,INDIRECT("Sheet1!B"&(MATCH(G$7,Sheet1!$B:$B,0)+1)&":AF"&(MATCH(G$7,Sheet1!$B:$B,0)+1)),0),FALSE)

全文を見る
すると、全ての回答が全文表示されます。
  • msMike
  • ベストアンサー率20% (363/1775)
回答No.2

Sheet2!F8: =VLOOKUP(D8,Sheet1!B$4:AF$35,E8+4,FALSE) Sheet2!G8: =VLOOKUP(D8,Sheet1!B$40:AF$45,E8+4,FALSE)

全文を見る
すると、全ての回答が全文表示されます。
  • SI299792
  • ベストアンサー率48% (719/1487)
回答No.1

また、位置・件数が変わっても対応できるようにと言われそうなので、 D8: =INDEX(Sheet1!B:B,SEQUENCE((COUNT(Sheet1!$C:$C)/2-1)*27,,0)/27+MATCH(F7,Sheet1!$B:$B,0)+2) E8: =MOD(SEQUENCE((COUNT(Sheet1!C:C)/2-1)*27,,0),27)+1 F8: =TOCOL(OFFSET(Sheet1!$F2,MATCH(F7,Sheet1!$B:$B,0),,COUNT(Sheet1!$C:$C)/2-1,27)) G8: F8をコピペ。

clarissuper999
質問者

お礼

この度は、その旨お含みおき頂いた上でご回答頂きありがとうございます。ご無礼を大変失礼しました。改めて、明日チャレンジしてみます!本当に凄いですね!元々パソコンが出始めの世代でしたので、とにかくやりながら慣れていってる状態でして、なかなか…。

Powered by GRATICA
clarissuper999
質問者

補足

D8:#N/A、E8:1、F8:#N/A、G8:#N/A  となりました。貼り付け方等、操作方法が何か違っていたのでしょうか?または特殊な操作が必要ですか?  D8列は、N/Aが下まで続いていて、E8は1,2,3…となっていて、F行はF8のみ#N/A、G8も同様です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルの算式について(ラスト)

    皆さん長きに渡り、解決へ向けてお付き合い頂きありがとうございました。特にSI299792さん。 本エクセルの質問ですが、これを最後にご質問させていただきたく、お願いしたいです。 先般解いて頂きました1件、行の数字が文字列であった場合は算式を組むことは出来ますか? 手持ちのエクセルでは上手く出なかった理由を探したら、行方向の算式に数値を引用する関数が使われてる事に気づき、もしや、数字の繰り返しを反映させている式なのでは?と思っています。であれば、エラーになって当然なのかなと思いました。 元の資料が秘資料でしたので、さすがに公にはできず、初めから行項目を1から27までの数値で振らせて頂いてまして、実はそこには27個の文字列が入ります。(列のa〜についても同じく文字列です)ここは、そもそも私のお伝えの仕方が完全に誤っていた結果でして、SI299792さんには大変申し訳なく思ってます。 是非最後にご回答頂けますとさいわいです。 https://1drv.ms/x/s!AnfEM367OeSdkivXITZp7wtTp2la?e=gmzGh1

  • エクセルの罫線の一部が消える

    Sheet1の B1:G3に文書名等、 B4:G4にタイトル、 B5:G104にデータが入っています。 B列の値でフィルターをかけてB5:G104をSheet2に貼り付けています。 Sheet2は B1:G3はヘッダー(フッターにはページを入れています) B4:G4にタイトル、 B5:G104にデータが貼り付けられます。 ただ、フィルターをかけますから、データが0行の時もあれば100行の時もあります。 これでSheet2を印刷すると、Sheet2のタイトル行のすぐ下、G5の上の線が表示(印刷)されません。 印刷はデータの最終行までに設定しています。 全部印刷した場合には4ページまでいきますが、すべてのページでタイトル行のすぐ下の罫線が 欠落します。 理由が分かりません。 要領の悪い説明で分かりにくいと思いますが、どなたか教えていただけないでしょうか。 よろしくお願いします。

  • EXCEL 2列交わる条件でフィルタをかけたい!

    初心者ですいません。 A列に対してB列の値を、複数条件でフィルタをかける方法を教えてください。 例えば…下記のように、 B列の(値→⚪︎を含まない値→×)だけに絞った A列の値を、別のシートに抽出したいと思っています。 ======================== 【フィルタ前】 A列 B列 ーーーーーーー 1 × 1 × 1 ⚪︎ ーーーーーーー 2 × ーーーーーーー 3 ⚪︎ 3 × ーーーーーーー 4 ⚪︎ ーーーーーーー 5 × 5 × 5 × 【フィルタ結果】 A列 B列 ーーーーーーー 2 × ーーーーーーー 5 × ======================== 1シートに対しデータが1000行位で、 5シートあるので、困っています。 どんな方法でも良いので、宜しくお願いします。

  • 照合した結果によって決めた値を転記するマクロ

    シート1には A~F列まで値があり、行数は都度相違し約15,000行くらい。 データは2行目から開始です。 シート2には A~AE列まで値があり、行数は都度相違し約5,000~25,000行 あり同じくデータは2行目からです。 シート1の行ごとに A列,B列,C列の順で連結した値と シート2の行ごとに F列,G列,B列の順で連結した値を 照合させます。 その値が (1)シート1にもシート2にもある場合は   シート2のAF列に1と転記 (2)シート1には無いがシート2にはある場合は   シート2のAF列に2と転記 (3)シート1には有るがシート2には無い場合は   シート2のAF列に3と記入 シート2のデータのある行まで 作業を繰り返すマクロの記述を教えてください。 VLOOKUPを使用したマクロを作成しましたが 判定1,2,3の転記がうまく出来ないのと VLOOKUPが重すぎて処理が遅すぎるので 速く処理が出来るとうれしいです。 例 シート1 A2=XXXX B2=1234 C2=5678 シ-ト2 B2=1234 F2=XXXX G2=5678 シート1の値=XXXX12345678 シート2の値=XXXX12345678 照合する ↓(一致なので) シート2のセルAF2に1と転記

  • Excel 複数の項目合致するデータを抽出したい

    是非、よろしくお願いいたします。 以下の状況です。 sheet1には A、B、C、Dという4列があります。データは1000行くらいです。 sheet2には A、B、C、Eという4列があります。データは2000行くらいです。 この状況で、sheet1のD列の右に新しい列を作り、 「sheet1の(例えば)A1、B1、C1と合致する行のsheet2のE列データ」を、 sheet2のABC列範囲を検索して抽出したいのです。 項目が一つであればvlookup関数でできるものを「複数項目に合致」のため上手くいきません。 この3列のデータを結合して一つにしてみましたが、結合後のデータが16桁以上のため末尾が「0」になってしまい、正確に検索できません。 何か上記を可能にする方法はないでしょうか? よろしくお願いいたします。

  • VBA,二つのExcelのsheetにデータ保存

    VBA初心者です。 皆様のお力をお貸し頂きたく質問させて頂きます。よろしくお願いいたします。 質問内容は、下記になります。 Excelのsheet1には、縦列A,B,C・・・とデータが入っております。 sheet1の例 A B C sheet2は、入力するsheetです。 今回はA列の3行目からとします。 問題は、sheet1の縦の列をA,B,C,Dとすればデータの更新は、出来るのですが sheet1のデータのA,B,C一つ飛んでEまた一つ飛んでGという感じでsheet1のデータを 飛ばしてsheet2に表示、更新(保存)をしたいと思います。 ですので、sheet2のA列の3行目からA,B,C,飛んでE飛んでGとsheet1からデータを 表示させ、さらにsheet2の入力値が変更されると、sheet1のデータが入っている A,B,C,E,Gに更新される仕様です。 sheet1(データが入っています) A , B , C , E , G , 値1 , 値2 , 値3   , 値4 , 値5 sheet2(入力する、入力したデータは、sheet1へ更新される) A列 3行目 、sheet1の値1(A列)が入ります。 4行目 、sheet1の値2(B列)が入ります。 5行目 、sheet1の値3(C列)が入ります。 6行目 、sheet1の値4(E列)が入ります。 7行目 、sheet1の値5(G列)が入ります。 以上です。申し訳ございませんが、ご教授よろしくお願いいたします。

  • エクセル2013 マクロ ご教示ください

    1行目は見出しです。 Sheet1のV列にSheet2のF列を反映させたいです。 条件は Sheet1のD列とN列とF列を検索値として Sheet2のB列とG列とE列とが合致したら Sheet1のV列にSheet2のF列を反映させたいです。 また、Sheet1のV列に反映させた後 Sheet2の該当行は削除したいです。 もしもSheet2に該当値が無かったらSheet1のV列には ナシ の文字が入力されるようにお願いします。 Sheet1もSheet2も日々、最終行が違います。

  • excel 別シートから複数項目を取得

    こんばんは。エクセルについて質問があります。 今、エクセルで同じ構造で中身の違うデータベースの様なシートを数枚作り、 そこから参照して、別の入力シートにそのデータを引っ張って来るということをしたいです。 調べてみた感じVLOOKUP関数などを使うのかなと思うのですが、 どうもうまいこといきません。 DBのような扱いをしているデータシートの構造は 【データシート】 A1(クラス名)列| B1(番号) 列 | C1(名前:漢字) 列 | D1(名前:かな) 列 | ------------------------------------------------------------------- A2   1-1 |  B2 1番 | C2 鈴木 太郎   | D2 すずき たろう   | のようなデータの入れ方をしており、クラスは1-7まである感じで、 B1の列はA1列のクラスの人数分が連番になっています。 なので、番号は重複してる部分が多いです。 これが複数枚シートあるといった具合です。 データを反映させたいシートも前4列は同じ様な構造をしています。 これにあと複数列足した感じになってます。 【反映させたいシート】 A1(クラス名)列| B1(番号) 列 | C1(名前:漢字) 列 | D1(名前:かな) 列 | E1 別項目 |… -------------------------------------------------------------------------------- A2  3-7  |  B2 2 | C2 田中 次郎   | D2 たなか じろう   | ×× |… ここで名前列に名前(漢字、もしくはかな)を入れるか、 もしくはクラス名+番号ですぐさま該当シートの特定し、 合致するE列以前の残りのデータを全て取得してくる。 反映させたシートのE列などに入れたデータを 今度はデータシートへとリンクさせるという風な プログラムを組みたいです。 こういった具合のエクセルシートを作成したいのですが、 どのようにしたら良いでしょうか? プログラムの様にIF文などを使用する感じになるのでしょうか? それともデータのシートに別でIDなどユニークな値を各々の データに割り振らないとダメでしょうか? また参考として知りたいのですが、 1行に引っ張りたくないデータが多数あっても行単位で3列の分だけ取得して、 1行にある3列分のデータを同じ1行3列に反映させることは可能でしょうか? 説明が下手で意味が解り辛い所もあるかもしれませんが、 回答よろしくお願いします。

  • Excelの関数に関して教えて下さい

    パソコンはWindos98です。 ExcelのAシートに     A列    B列    C列    D列    (品名) (ロット) (容量)  (数量) 1行 みかん   123   100g  3 2行 りんご   456   100g  4 3行 ピーチ   789   120g  2 とある場合に新たなBシートの A1のセルに「りんご」と入力した場合に A1 品名 A2 ロット A3 容量 A4 数量 Aシートの2行目のデータをBシートのそれぞれの欄に 自動的に入るという関数はありますでしょうか? ちなみにAシートのりんごのデータは2行目にくるか 3行目にくるかは分からないのでどこの行に入力しても Bシートに反映されるというようにしたいのです。 補足もしますのでどうか宜しくお願いします。

  • エクセルVBA 集計

    事情がありピボットテーブルを使用しないで実現したいです シート1のドロップダウンリストで集計したい項目を2つ選択(15項目中) 例えば、項目1が色、項目2が形と選択 シート2に500件程(数が増える)のデータがあり、シート3へ集計 (シート3)  A | B | C | D |・・・・・・ 1|色|数|形|数|・・・・・・ 2|赤|30|○|10| 3|青|20|△|20| 4|白|40|□|30| 5|黄|40| ・ ・ シート1で設定した項目1でシート3の1行目を参照し、合致したデータをシート4のA列、B列に貼り付け シート1で設定した項目2でシート3の1行目を参照し、合致したデータをシート4の1行目、2行目に貼り付け 数値は例えばC3なら赤で○のものを表示 (シート4)  A | B | C | D |・・・・・・ 1| |   形  |・・・・・ 2| | |○|△|□| 3| |赤|20|10|16| 4|色|青|10|15|23| 5| |白|14|15|35| 6| |黄|17|15|35| ・ ・ このような感じでシート4を作るVBAをご伝授ください。 シート1、シート2、シート3は出来ているので大丈夫です。 稚拙な説明ですいません。 よろしくお願いいたします。

専門家に質問してみよう